① 想在含有n個元素的序列中得到最小的前k個元素,最好採用什麼排序演算法
想在含有n個元素的序列中得到最小的前k個元素,最好採用什麼排序演算法是堆排序。
堆排序利用堆數據結構而設計的一種排序演算法,堆排序是一種選擇排序,平均時間復雜度均為O(nlogn),堆排序具有不穩定性。
堆排序作為具有以下性質的完全二叉樹:大頂堆每個結點的值都大於或等於其左右孩子結點的值,或者小頂堆每個結點的值都小於或等於其左右孩子結點的值。
(1)演算法題最小元素擴展閱讀:
堆排序的基本思想:將待排序序列構造成一個大頂堆,此時,整個序列的最大值就是堆頂的根節點。將其與末尾元素進行交換,此時末尾就為最大值。
然後將剩餘n-1個元素重新構造成一個堆,這樣會得到n個元素的次小值。如此反復執行,便能得到一個有序序列了。