關於七大排序問題《二》

2021-08-03 15:02:36 字數 837 閱讀 4709

5氣泡排序:

氣泡排序的思想是(按照公升序):如果前乙個數大於後乙個數,那麼就交換,如圖所示:

氣泡排序實現的實現:

void bublessort(int* a, size_t n)

} if (exchange = false)

end--;

}}

6,歸併排序:

它的排序思想需要建立乙個臨時的陣列如圖所示:

歸併排序的實現:

void merge(int* a, int* tmp, int begin1, int end1, int begin2, int end2)

else

while (begin1 < end1)

while (begin2 < end2)

}memcpy(a, tmp, sizeof(int)*(end2 - pos + 1));

}void _mergesort(int* a, int* tmp, int left, int right)

void mergesort(int* a, size_t n)

不難看出歸併演算法的漸進時間成本取決於其中迴圈迭代的總次數。

七大排序演算法

氣泡排序 void bubble int a,int n 選擇排序 void select sort int a,int n n為陣列a的元素個數 將第i 小的數,放在第i 個位置 如果剛好,就不用交換 if i min index 插入排序 typedef int elementtype void...

七大排序演算法

七大排序分類 插入排序 直接插入排序 穩定 希爾排序 不穩定 選擇排序 簡單選擇排序 穩定 堆排序 不穩定 交換排序 氣泡排序 穩定 快速排序 不穩定 歸併排序。直接插入排序 時間複雜度 o n 2 演算法穩定性 穩定void straightinsertsort int a,int n 氣泡排序 ...

七大排序演算法

首先回顧下各種排序的主要思路 一 氣泡排序 氣泡排序主要思路是 通過交換使相鄰的兩個數變成小數在前大數在後,這樣每次遍歷後,最大的數就 沉 到最後面了。重複n次即可以使陣列有序。氣泡排序改進1 在某次遍歷中如果沒有資料交換,說明整個陣列已經有序。因此通過設定標誌位來記錄此次遍歷有無資料交換就可以判斷...