先說說選擇排序的思想:
每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。
穩定性和複雜度:
選擇排序是不穩定的排序演算法,時間複雜度最壞為o(n2),平均為o(n2),空間複雜度為o(1).
下面是我用c語言實現的選擇排序的源**,如果有什麼不對的地方,請各位指出,謝謝。
#include #include #include void selectsort(int array, int size);
void swap(int *value1, int *value2);
void printarray(int *array, int size);
int main(int argc, char const *argv)
selectsort(array, size);
printarray(array, size);
free(array);
return 0;
}void selectsort(int array, int size)
}swap(&array[i], &array[minindex]);
}}void swap(int *value1, int *value2)
void printarray(int *array, int size)
printf("\n");
}
其他八種排序演算法的部落格:
常見的9種內部排序(c語言實現)
希爾排序c語言版
以前學資料結構的時候,因為老師的時間問題,導致這個演算法沒講,今天有人問我這個演算法問題,然後下去查了一下資料,把這個演算法終於弄明白了,這個演算法就是將乙個陣列,先確定乙個步長,一般為陣列大小的一半,然後將間距每個步長對應的兩個數字,從頭到尾的進行比較。因為我們是從小到大,那麼就是如果前面的數如果...
氣泡排序(C語言版)
氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。它的變化過程如下圖 下面我們用 實現 include includeint main for j 0 j 9 j...
桶排序C語言版
桶排序 bucket sort 是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不是 比較排序,它...