2011-04-09 wcdj
問題描述:
將n(1<= n <= 200000)個整數從小到大連續編號,相同的數應具有相同的編號。並按這n個數輸入時的順序輸出它們的編號序列。例如,設輸入資料為 5 3 4 7 3 5 6,則輸出資料為3 1 2 5 1 3 4。
【輸入形式】
從標準輸入讀取資料。
輸入包含n個數字(1<= n <= 200000),之間由空格分隔,以回車符作為結束。
【輸出形式】
計算結果輸出到標準輸出。
按這n個數輸入時的順序輸出它們的編號序列。每個序號之後緊跟乙個空格符,最後輸出回車符。
【輸入樣例】
5 3 4 7 3 5 6
【輸出樣例】
3 1 2 5 1 3 4
方法1:不排序
時間複雜度:o(n^2)
方法2:排序
時間複雜度:o(n*lbn)
方法3:使用stl中的map
計數排序與穩定排序
我們常用的排序演算法,有冒泡演算法 快速演算法等,它們都是基於元素之間的比較來進行排序,有一種特殊的演算法不是基於元素比較,而是利用陣列下標來確定元素在陣列的位置,這種演算法就是 計數排序 先來說一下實現的原理,假設有20個隨機整數的陣列array,他們值分別是 9,3,5,4,9,1,2,7,8,...
分塊思想與計數排序
所謂分塊思想,就是把原本非常大的區間劃分為數個小區間,然後在小區間裡遍歷查詢。這樣比在整個大區間裡查詢要高效許多。以乙個動態求解序列中第k大的數為例子。將10 5分割為 sqrt 10 5 1 個塊,形成乙個陣列 block i 表示這個塊所表示的區間中的元素個數。同時再設定乙個hash陣列 has...
python計數排序 Python 計數排序
1.python coding utf 8 def counting sort a,b,k 計數排序,偽碼如下 counting sort a,b,k 1 for i 0 to k 初始化儲存區的值 2 do c i 0 3 for j 1 to length a 為各值計數 4 do c a j ...