一、排序演算法分為:
1.插入排序(直接插入排序&希爾排序)
2.選擇排序(直接選擇排序&堆排序)
3.交換排序(氣泡排序&快速排序)
4.歸併排序
二,選擇排序----直接選擇排序
1.演算法**
//選擇排序
//直接選擇排序
void selectsort(int* a,size_t n)
if(a[child]>a[parent])
else
}}void heapsort(int* a,size_t n)
size_t end=n-1;
while(end>0) }
測試**
void printarray(int* a,size_t n)
{ for(size_t i=0;i
最好情況:o(nlogn)
最壞情況:o(nlogn)
平均時間 複雜度:o(nlogn)
空間複雜度:(o(1))
3.穩定性
堆排序是不穩定的,因為利用的排序空間仍然是初始的序列,並未開闢新的空間,演算法是不穩定的,與初始序列無關。
排序演算法之直接選擇排序
直接選擇排序是將整個待排序序列分為兩部分,一部分為有序 最開始有序序列為空 一部分為無序 最終無序序列為空 有序序列中的數都不大於無序序列中的數。它的過程是每次都在無序中尋找乙個最小的數,然後將其與無序序列的第乙個數交換,並併入有序序列。則有序序列長度增1,無序序列長度減1。比如 對r 0 n 陣列...
排序演算法之直接選擇排序
直接選擇排序是將整個待排序序列分為兩部分,一部分為有序 最開始有序序列為空 一部分為無序 最終無序序列為空 有序序列中的數都不大於無序序列中的數。它的過程是每次都在無序中尋找乙個最小的數,然後將其與無序序列的第乙個數交換,並併入有序序列。則有序序列長度增1,無序序列長度減1。比如 對r 0 n 陣列...
每日演算法 選擇排序演算法之直接選擇排序
1 演算法簡介 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下 2 演算法描述和分析 n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 1 初始狀態 無序區為r 1.n 有序區為空。2 第i趟排序 i 1,2,3.n 1 第i趟排序開始時,當前...