選擇排序的思想:
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 這裡需要注意的操作是如何...