选择排序-java
算法描述:對于給定的一組記錄,經過第一輪比較后得到最小的記錄,然后將該記錄與第一個記錄的位置進行交換;
接著對不包括第一個記錄以外的其他記錄進行第二輪比較,得到最小的記錄并與第二個記錄進行位置交換;重復該過程,直到進行比較的記錄只有一個時為止。
package?sorting; /** ?* 選擇排序 ?* 平均O(n^2),最好O(n^2),最壞O(n^2);空間復雜度O(1);不穩定;簡單 ?* @author zeng ?* ?*/ public?class?SelectionSort { ????public?static?void?selectionSort(int[] a) { ????????int?n = a.length; ????????for?(int?i =?0; i < n; i++) { ????????????int?k = i; ????????????// 找出最小值的小標 ????????????for?(int?j = i +?1; j < n; j++) { ????????????????if?(a[j] < a[k]) { ????????????????????k = j; ????????????????} ????????????} ????????????// 將最小值放到排序序列末尾 ????????????if?(k > i) { ????????????????int?tmp = a[i]; ????????????????a[i] = a[k]; ????????????????a[k] = tmp; ????????????} ????????} ????} ????public?static?void?main(String[] args) { ????????int[] b = {?49,?38,?65,?97,?76,?13,?27,?50?}; ????????selectionSort(b); ????????for?(int?i : b) ????????????System.out.print(i +?" "); ????} } 來自:https://www.cnblogs.com/zengzhihua/p/4456741.html 僅供學習
接著對不包括第一個記錄以外的其他記錄進行第二輪比較,得到最小的記錄并與第二個記錄進行位置交換;重復該過程,直到進行比較的記錄只有一個時為止。
package?sorting; /** ?* 選擇排序 ?* 平均O(n^2),最好O(n^2),最壞O(n^2);空間復雜度O(1);不穩定;簡單 ?* @author zeng ?* ?*/ public?class?SelectionSort { ????public?static?void?selectionSort(int[] a) { ????????int?n = a.length; ????????for?(int?i =?0; i < n; i++) { ????????????int?k = i; ????????????// 找出最小值的小標 ????????????for?(int?j = i +?1; j < n; j++) { ????????????????if?(a[j] < a[k]) { ????????????????????k = j; ????????????????} ????????????} ????????????// 將最小值放到排序序列末尾 ????????????if?(k > i) { ????????????????int?tmp = a[i]; ????????????????a[i] = a[k]; ????????????????a[k] = tmp; ????????????} ????????} ????} ????public?static?void?main(String[] args) { ????????int[] b = {?49,?38,?65,?97,?76,?13,?27,?50?}; ????????selectionSort(b); ????????for?(int?i : b) ????????????System.out.print(i +?" "); ????} } 來自:https://www.cnblogs.com/zengzhihua/p/4456741.html 僅供學習
轉載于:https://www.cnblogs.com/altlb/p/8318060.html
總結
- 上一篇: 64位CentOs7源码安装mysql-
- 下一篇: BZOJ 2039: [2009国家集训