演算法導論學習||選擇排序
阿新 • • 發佈:2018-12-10
選擇排序簡單得說就是找出最小的和第一個數交換,再找出次小的數與第二個數交換……以這樣的方法進行排序。
下面是自己用java實現的演算法:
public class selection_sort { public static void main(String[] args) { ArrayList<Integer> a = new ArrayList<Integer>(); //從控制檯獲取要排序的數,“#”鍵結束 Scanner sc = new Scanner(System.in); while(sc.hasNextInt()){ if(sc.equals("#")){ break; } a.add(sc.nextInt()); } // java實現選擇排序 for(int j=0;j<a.size();j++){ int key = a.get(j); int key_i = j; int i =j+1; while(i<a.size()){ if(key>a.get(i)){ key = a.get(i); key_i = i; } i++; } int temp = a.get(j); a.set(j, key); a.set(key_i, temp); } System.out.print("排序結果:"); for(Integer A:a){ System.out.print(A + " "); } } }
選擇排序的時間複雜度為,有不足和不對的地方歡迎指出。