描述:編寫一個程序,當輸入不超過60個字符組成的英文文字時,計算機將這個句子中的字母按英文字典字母順序重新排列,排列后的單詞的長度要與原始句子中的長度 相同。例如: 輸入: TH ...
描述:給定n個整數,請統計出每個整數出現的次數,按出現次數從多到少的順序輸出。 輸入:輸入的第一行包含一個整數n,表示給定數字的個數。第二行包含n個整數,相鄰的整數之間用一個空格分隔,表示所給定的整數。 輸出:輸出多行,每行包含兩個整數,分別表示一個給定的整數和它出現的次數。按出現次數遞減的順序輸出。如果兩個整數出現的次數一樣多,則先輸出值較小的,然后輸出值較大的。 input: output: ...
2015-08-01 00:04 6 4981 推薦指數:
描述:編寫一個程序,當輸入不超過60個字符組成的英文文字時,計算機將這個句子中的字母按英文字典字母順序重新排列,排列后的單詞的長度要與原始句子中的長度 相同。例如: 輸入: TH ...
寫堆排序的動機 自從學了堆以來,對於堆用得最多的就是STL的map,set以及優先隊列,而最基本的堆構建,堆調整都沒有動作做過,趁着找實習的階段復習一下堆,實現一個堆排序。 堆介紹 堆是一個完全二叉樹,也就是說,整棵樹除了葉子最底層的葉子節點之外 ...
github博客傳送門 csdn博客傳送門 選擇排序原理: 測試輸出: ...
選擇排序是蠻力法在排序算法中的一個重要運用,選擇排序開始的時候,我們掃描整個列表,找到它的最小元素然后和第一個元素交換,將最小元素放到它在有序表的最終位置上。然后我們從第二個元素開始掃描列表,找到最后n-1個元素的最小元素,再和第二個元素交換位置,把第二小的元素放在它最終的位置上。如此循環下去 ...
...
/* 直插排序 */ void InsertSort(vector<int> &arr){ for(int i = 1;i < arr.size();++i){ for(int j = i;j > 0;--j ...
堆可以看作是一個完全二叉樹,分為大頂堆和小頂堆,本文我們以大頂堆為例來實現堆排序。 (1)建堆 先把給定的序列轉換成一棵完全二叉樹,然后逐步對其調整使其每個結點的值都大於其兩個子結點的值,因此我們需要從第一個非葉結點開始逐步向前調整(葉結點不存在子結點比其大的狀況,所以從非葉結點 ...
實現思想: 1.尋找[i, n)區間里的最小值min ( i>= 0 ) 2.交換min和第i的數 ( i>= 0 ) ...