排序注意
数组的每一次排序,是对数组本身进行修改,数组是引用对象,所以是直接对数组引用的地址进行修改,而并非将值改变。
冒泡排序
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
// 排序前:
System.out.println(Arrays.toString(ns));
for (int i = 0; i < ns.length - 1; i++) {
for (int j = 0; j < ns.length - i - 1; j++) {
if (ns[j] > ns[j+1]) {
// 交换ns[j]和ns[j+1]:
int tmp = ns[j];
ns[j] = ns[j+1];
ns[j+1] = tmp;
}
}
}
// 排序后:
System.out.println(Arrays.toString(ns));
}
}
每一次的循环结束之后,最大的值会被排到最后一个,所以每次循环循环次数会减1,除去最后一次的循环对比。
Arrays.sort()
Java中,jdk自带排序方法,Arrays.sort(),可以直接将数组进行排序。
public static void main(String[] args) {
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));
}