廖雪峰Java1-4陣列操作-2陣列排序
阿新 • • 發佈:2019-01-11
氣泡排序法
將第一個值和後面的值,挨個比較,如果手裡的值比序列的值小,就交換資料,拿新的數字繼續比較,直到最後。
再將第二個值和後面的值,挨個比較。
迴圈往復,排序完成。
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));
使用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));
檢視原始碼
使用command+滑鼠左擊,即可檢視原始碼。
如果沒有jdk原始碼,只要將Attach Source——External Location新增jdk原始碼即可。
windows:在jdk的根目錄下
Mac:jdk1.8.0_131.jdk/Contents/Home/下
總結
- 常用的排序演算法:氣泡排序、比較排序、快速排序
- 氣泡排序使用兩層for迴圈實現
- 交換兩個變數的值需要通過一個臨時變數
- 可以直接使用jdk的Arrays.sort()排序
- ctrl+左鍵/command+左鍵,快速檢視原始碼
- 對陣列進行排序,會修改陣列本身。