基本排序總結

2022-01-26 05:51:05 字數 1303 閱讀 3279

基本思想從輸入序列的第乙個元素到最後乙個元素進行兩兩比較。以最小序列為例,最小元素會如同氣泡一樣漂浮到序列頂端。

//o(n^2)

void bubblesort(int a)}}

}//o(n^2)

void bubblesortedimproved(int a)

}}

尋找最小值,用當前位置和最小值交換。直到序列排好序

//o(n^2)

void selectsort(int a)

}//swap

temp = a[min];

a[min] = a[i];

a[i] = temp;

} }

從輸入序列中移除乙個元素到待插入序列的正確位置,直到每個元素都被選擇一次

//o(n^2)

void intsertsort(int a)

a[j] = temp;

}

n間距的插入排序,使用不同的間距比較元素,通過逐漸減少間距最終完成一次常規插入排序

//時間複雜度取決於間距

void shellsort(int a)

a[k] = temp}}

if(gap == 1)

}}

分治和歸併的思想進行的排序,小檔案開始大檔案結束

//o(nlogn)

void mergesort(int a,int left,int right)

}void merge(int a,int left,int mid,int right)

while(l <= mid)

while(m <= right)

for(int i = left;i <= right;i++)

}

大檔案開始小檔案結束

//o(nlogn)

quicksort(int a,int low,int high)

}int partition(int a,int low,int high)

while(a[rihjt] > pivot)

if(left < right)

}a[low] = a[right];

a[right] = pivot;

return right;

}void swap(int a,int left,int right)

基本排序演算法總結

1.插入排序 insertion sort o n2 對少量資料排序很有效,不需要額外的儲存空間。待排序列已經是從小到大,最壞就是逆序的時候了。且是穩定的。include include int exchange int a,int i,int j int insert int a,int s,in...

基本排序演算法總結

排序演算法很多,這裡做個總結,最重要的是記住演算法思想,而不是記住程式怎麼寫。程式過一段時間就會忘了,演算法原理熟悉了現場寫出來應該是很容易的。時間複雜度為o n 2 的三種排序演算法 插入排序 選擇排序 氣泡排序。插入排序 插入排序是選定元素找位置。對於位置為p上的元素,假定0 p 1的元素已經排...

基本排序演算法總結

排序演算法的評價 評價排序演算法的一般準則是 平均情況下的排序速度 最優最劣情況下的速度 行為是否自然 是否以相等的關鍵字重排元素 陣列的排序速度直接與比較 comparison 次數和交換 exchange 次數相關,其中交換的作用更大,因為占用的時間多。如果頻繁遭遇到最優最劣情況,則最優和最劣情...