選擇排序算法,與冒泡排序的優勢就是減少了交換操作。代碼如下:
void selectSort(int A[], int n){
int min;
for (int i = 0; i < n-1; i++) {
min = i;
for (int j = i + 1; j< n ; j++) {
if (A[j] < A[i]) {
min = j;
}
}
if (min != i) {
swapA(A, i, min);
}
}
}
代碼調用如下:
int A[] = {9,7,11,3,4,1,0};
int n = sizeof(A)/sizeof(int);
selectSort(A,n);
printfArray(A,n);
註釋:
// 分類 -------------- 內部比較排序
// 數據結構 ---------- 數組
// 最差時間複雜度 ---- O(n^2)
// 最優時間複雜度 ---- O(n^2)
// 平均時間複雜度 ---- O(n^2)
// 所需輔助空間 ------ O(1)
// 穩定性 ------------ 不穩定
參考地址:http://www.cnblogs.com/eniac12/p/5329396.html
更多優質文章,可以微信掃碼關注: