用java简单编写一个将数组中的负数按降序排列,正数按升序排列的代码
时间: 2024-12-15 08:15:51 浏览: 41
在Java中,你可以使用两个指针分别遍历数组,一个从左往右找最小的非负数,另一个从右往左找最大的负数。下面是一个简单的示例代码:
```java
import java.util.Arrays;
public class SortArray {
public static void main(String[] args) {
int[] array = {1, -5, 3, 0, -2, 4, 6, -8};
sortMixedArray(array);
System.out.println(Arrays.toString(array));
}
public static void sortMixedArray(int[] array) {
int left = 0, right = array.length - 1;
while (left < right) {
// 找到左边第一个非负数并交换到最右边
while (left < right && array[left] <= 0) {
left++;
}
if (left < right) {
swap(array, left++, right);
}
// 找到右边第一个负数并交换到最左边
while (left < right && array[right] < 0) {
right--;
}
if (left < right) {
swap(array, left, right--);
}
}
}
private static void swap(int[] array, int i, int j) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
```
这个程序首先设置两个指针,一个指向数组开始,一个指向结束。然后不断比较两个指针所指向的元素,如果左侧的是非负数,则将其放到右侧;如果右侧的是负数,则将其放到左侧。最后剩下的数组就会满足正数升序,负数降序的要求。
阅读全文
相关推荐


















