選擇排序就是每次將未排序的數組中最小的一個元素找出,將其與數組的第一個元素交換,從而完成數組的排序。
算法實現:
void sort::select_sort(int* a,const int n)
{
for(int i=0 ;i<n; i++)
{
int min = i;
for(int j=i+1; j<n; j++)
{
if(a[j] < a[min])
min = j;
}
swap(a,i,min);
}
}
上述算法可以看出,在選擇排序的過程中只交換了N次數組元素。算法的時間復雜度為O(N^2)。
歸並排序的實現 http://www.linuxidc.com/Linux/2014-09/107316.htm
直接插入排序的三種實現 http://www.linuxidc.com/Linux/2014-09/107313.htm
直接選擇排序及交換二個數據的正確實現 http://www.linuxidc.com/Linux/2014-09/107315.htm
排序總結之選擇式排序 http://www.linuxidc.com/Linux/2014-09/106564.htm