选择排序也是一种较为简单的排序算法,算法时间复杂度为O(N²)。
选择排序的思想是:从未排序的数列中找到最小的元素,将其存放在对头,再从其余的元素中找到最小的元素,放到已排序数列的末尾,依次遍历。
图解:
代码:
1 void SelectSort( int a[] , int n ) 2 { 3 int i = 0 , j = 0 , min = 0; 4 int temp = 0; 5 6 for( i = 0; i < n ; i++) 7 { 8 min = i; 9 for( j = i + 1 ; j < n ; j++ ) 10 { 11 if( a[j] < a[min] ) 12 { 13 min = j; 14 } 15 } 16 if( min != i ) 17 { 18 temp = a[min]; 19 a[min] = a[i]; 20 a[i] = temp; 21 } 22 } 23 }