排序演算法思想及其C語言實現

2021-10-10 06:47:24 字數 584 閱讀 8039

查詢最小數字並進行交換

以對8個數字進行排序為例:

對下面八個數字進行從小到大的排序,我們採用的方案是先從八個數字中找到最小的數字,在這裡就是將1和最左邊的7交換位置,這之後1的位置固定下來。

接下來我們在剩下的數字裡尋找最小數,將最小的4和左邊第二個數字對換位置,於是4和13也交換了位置。

我們發現什麼呢?

每一次的交換可以稱為一輪,到了第k輪,就把剩下數字中最小的乙個和左邊開始第k個數字進行交換。於是在第k輪結束的時候,從左數第k個數字便按照從小到大的順序排列了,只要將這個步驟重複n次,所有的數字都將會按照從小到大的順序排列。

常見排序演算法及其C語言實現(二)

堆的基本操作及堆排序 void siftup int h,int i 關於堆,所有的位置計算都從1開始。包括n代表個數。void siftdown int h,int n,int i 因此在陣列操作的時候都要減一,其它位置均表示個數 void makeheap int h,int n void he...

排序演算法(C語言實現)

本文共介紹了7種排序演算法 參考文章 1.1 基本思想 依次向後兩兩相鄰比較,大的向後移 1.2 示例 void bubblesort int a,int n 2.1 基本思想 從無序佇列中選擇最小值,放置到有序佇列的末尾 2.2 示例 void selectsort int a,int n a j...

排序演算法 氣泡排序 C語言實現

氣泡排序介紹 氣泡排序 bubble sort 又稱為氣泡排序。這是一種較簡單的排序演算法。它會遍歷若干次要排序的陣列,每次遍歷時,它都會從前往後依次比較相鄰兩個數的大小 如果前者大於後者,則兩者位置互換。由此,一次遍歷後,最大元素就在數列末尾。採用相同方法再次遍歷時,第二大的元素就被排列在最大元素...