廖雪峰Java1-4数组操作-2数组排序
冒泡排序法
将第一个值和后面的值,挨个比较,如果手里的值比序列的值小,就交换数据,拿新的数字继续比较,直到最后。
再将第二个值和后面的值,挨个比较。
循环往复,排序完成。
int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
for (int i = 0;i < ns.length;i++){
for(int j = i+1;j < ns.length;j++){
if (ns[i] > ns[j]){
//交换ns[i]和ns[j]
int tmp = ns[j];
ns[j] = ns[i];
ns[i] = tmp;
}
}
}
System.out.println(Arrays.toString(ns));
![](https://img2018.cnblogs.com/blog/1418970/201901/1418970-20190111091621714-860111551.png)
使用jdk的Arrays.sort()直接排序
sort对大数组进行快速排序,对小数组仍使用冒泡排序
int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
Arrays.sort(ns);
System.out.println(Arrays.toString(ns));
![](https://img2018.cnblogs.com/blog/1418970/201901/1418970-20190111091935426-175026330.png)
查看源码
使用command+鼠标左击,即可查看源码。
如果没有jdk源码,只要将Attach Source——External Location添加jdk源码即可。
windows:在jdk的根目录下
Mac:jdk1.8.0_131.jdk/Contents/Home/下
总结
- 常用的排序算法:冒泡排序、比较排序、快速排序
- 冒泡排序使用两层for循环实现
- 交换两个变量的值需要通过一个临时变量
- 可以直接使用jdk的Arrays.sort()排序
- ctrl+左键/command+左键,快速查看源码
- 对数组进行排序,会修改数组本身。