1 int[] selection_sort(int[] arr) { 2 int i, j, min, temp, len=arr.length; 3 for (i=0; i<len-1; i++) { 4 min=i; 5 for (j=i+1; j<len; j++) { 6 if (arr[min]<arr[j]) { 7 min=j; 8 } 9 temp = arr[min]; 10 arr[min] = arr[i]; 11 arr[i]=temp; 12 } 13 } 14 return arr; 15 } 16 17 void draw() { 18 noLoop(); 19 int[] test = {15, 33, 46, 22, 70}; 20 println(selection_sort(test)); 21 }
选择排序,就是依序拿相邻的两个元素做比较,大的那个放下面,小的堆上面,一轮过后就排好了,O(N^2)。