描述:給定n個整數,請統計出每個整數出現的次數,按出現次數從多到少的順序輸出。 輸入:輸入的第一行包含一個整數n,表示給定數字的個數。第二行包含n個整數,相鄰的整數之間用一個空格分隔,表示所給定的整 ...
描述:編寫一個程序,當輸入不超過 個字符組成的英文文字時,計算機將這個句子中的字母按英文字典字母順序重新排列,排列后的單詞的長度要與原始句子中的長度相同。例如: 輸入: 輸出: 並且要求只對 到 的字母重新排列,其它字符保持原來的狀態。 分析:難點在待排序列中混有不相干的字符,我用的是冒泡排序法,在大寫字母間進行比較,用一個函數返回和最大值交換的字母的下標。 ...
2015-08-13 22:22 0 2682 推薦指數:
描述:給定n個整數,請統計出每個整數出現的次數,按出現次數從多到少的順序輸出。 輸入:輸入的第一行包含一個整數n,表示給定數字的個數。第二行包含n個整數,相鄰的整數之間用一個空格分隔,表示所給定的整 ...
資源限制 時間限制:1.0s 內存限制:256.0MB 問題描述 利用字母可以組成一些美麗的圖形,下面給出了一個例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 這是一個5行7列的圖形,請找出這個圖形 ...
寫堆排序的動機 自從學了堆以來,對於堆用得最多的就是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)建堆 先把給定的序列轉換成一棵完全二叉樹,然后逐步對其調整使其每個結點的值都大於其兩個子結點的值,因此我們需要從第一個非葉結點開始逐步向前調整(葉結點不存在子結點比其大的狀況,所以從非葉結點 ...