初探 排序演算法

2021-07-14 01:12:54 字數 918 閱讀 6467

選擇排序的思想:

for (i = 0; i < num; i++)

}//交換

tempvalue = temp_array[smallest];

temp_array[smallest] = temp_array[i];

temp_array[i] = tempvalue;

}

插入排序的思想:

for (i = 0; i < num; i++)

}array[position] = data->array[i];

}

歸併排序的思想: 分治思想

快速排序:分治思想。

a. 在資料區域中選擇乙個基準點k;

b. 大於k的放一邊a,小於k的放另一邊b.

c. 再分別在a,b中以相同的策略劃分。

(注:每一次都能排序好乙個資料,就是基準點那個)

關鍵**:

while(1)

while(array[i] <= key && i < j) //從前往後找比基準大的

if (i < j) //交換

else

}//這次的交換能排序好乙個資料,即基準。

temp = array[j];

array[j] = array[begin];

array[begin] = temp;

//分兩部分,繼續遞迴

quick_sort(array, begin, j-1);

quick_sort(array, j+1, end);

氣泡排序:

堆排序:關鍵在於最大最小堆的調整,排序只是迴圈輸出第乙個資料。【和二叉樹/優先佇列相關一起寫】

排序演算法 堆排序初探

思想步驟 實現 堆 heap 是一類特殊的資料結構的統稱。堆通常是乙個可以被看做一棵完全二叉樹的陣列物件。binary tree 二叉樹 是樹的一種,主要的特點是二叉樹的所有節點最多只有兩個葉節點。除此之外沒有別的要求。complete binary tree 完全二叉樹 二叉樹的一種。在完全二叉樹...

演算法初探 選擇排序

選擇排序 selection sort 就是通過n 1次關鍵字之間的比較,從n i 1個記錄中選擇出最小的記錄,並和第i個記錄做交換。簡單來說就是 從第i個記錄向後找乙個最小的值 將找到的記錄與第i個記錄交換即可 重複上述步驟直至整個序列排序完成 找不到動態圖了鬱悶 待排序序列 selectsort...

演算法初探 插入排序

插入排序 insertion sort 是一種玩撲克的時候用的方法,我們摸牌時已經抽到的牌我們已經排好序了,抽上來一張新牌,我們一般不會直接放在最後,等全部抽完之後再進行排序,而是抽上來之後立刻放到對應的位置。可以看gif圖了 抽牌的順序就是 6 5 3 1 8 7 2 4 這裡需要注意的操作是如何...