堆排序是一種比較高效的演算法.雖然在大規模排序時不及快排,但是這個演算法較容易實現,不易錯(因為沒有用到遞迴),一般規模的排序還是效果不錯的.
以下是示例**:
#includeusing namespace std;
void heapsort(int num, int n); //func decl.
int main(void)
return 0;
}//main.
void heapadjust(int num, int n)
if(num[i-1] < num[2*i-1])
} return;
}void heapsort(int num, int n)
return;
}
該堆排序通過不斷的在陣列前面部分建立最大堆,並將最大元素輸出到末端,從而實現了公升序排序.
對n個整數用O n 的時間進行排序
1 求得min,max 2 開闢空間 a 0,max min 1 3 if min 0 data i min else data i min 4 for i 0 to n a data i 1 5 index 0 for i 0 to max min if a i 1 data index i in...
排序演算法 N個正整數排序
高德納在 計算機程式設計藝術 裡對演算法歸納為以下幾點 輸入 乙個演算法必須有零或以上的輸入量 輸出 乙個演算法應有乙個或以上的輸出量 明確性 演算法的描述必須無歧義,實際執行結果是確定的 有限性 必須在有限個步驟內結束 有效性 又稱可行性,能夠被執行者實現 如果想詳細研究演算法推薦 資料結構與演算...
1202 對n個數進行排序
題目 2016華科計算機保研機試試題 題目要求 輸入 輸入的一行包括乙個整數n,接下來的一行包括n個整數。輸出 可能有多組測試資料,對於每組資料,將排序後的n個整數輸出,每個數後面都有乙個空格。每組測試資料的結果佔一行。樣例輸入 4 1 4 3 2 樣例輸出 1 2 3 4 本題是將輸入的n個數進行...