Java线性表算法:高效移动负数到列表前面
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(-1);
list.add(-2);
list.add(3);
list.add(-3);
list.add(4);
moveNegativeNumbersToFront(list);
System.out.println(list);
}
public static void moveNegativeNumbersToFront(List<Integer> list) {
int i = 0;
int j = list.size() - 1;
while (i < j) {
while (i < list.size() && list.get(i) < 0) {
i++;
}
while (j >= 0 && list.get(j) >= 0) {
j--;
}
if (i < j) {
int temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
}
}
输出:[-1, -2, -3, 2, 3, 1, 4]
原文地址: https://www.cveoy.top/t/topic/pgUo 著作权归作者所有。请勿转载和采集!