陣列排序問題

2021-08-25 05:26:27 字數 638 閱讀 4400

牛客網上有一道很典型的陣列排序問題:先用計算機生成了n個1到1000之間的隨機整數(n≤1000),對於其中重複的數字,只保留乙個,把其餘相同的數去掉。然後再把這些數從小到大排序(同乙個測試用例裡可能會有多組資料,希望大家能正確處理)。

我的做法比較常規:先儲存陣列,然後去重,之後排序輸出。編寫**:

#include#includeusing namespace std;

int main()

for(int i=0;iarray[j])

}*/ for(int i=0;i以上做法比較容易理解,但是執行過程稍微有點繁瑣。在牛客網討論貼吧中,有網友給出了另外一種簡潔、經典的演算法,**如下:

#include using namespace std;

int main() ;

while (n--)

for (int i = 0; i < 1001; i++)

if (a[i])

cout << i << endl;

}return 0;}

該演算法直接以輸入元素值作為陣列下標,遍歷所有元素即遍歷陣列下標,在這過程中相等元素作為下標給陣列賦值時並沒有影響,自然而然地過濾了重複元素,之後再按照已賦值陣列元素篩選出輸出下標值,不得不說,作者的構思很巧妙。

陣列的排序問題。

程式的版權和版本宣告部分 檔名稱 array.cpp 作 者 董萬鵬 完成日期 2012 年12月2 日 版本號 v1.0 輸入描述 無 問題描述 冒泡法排列陣列 include using namespace std void bubble sort int x,int num void outp...

陣列的排序問題

蘋果給出的例子 nsarray sortedarray array sortedarrayusingcomparator id obj1,id obj2 if obj1 integervalue obj2 integervalue return nscomparisonresult nsordere...

LeetCode 陣列排序問題

給定乙個非負整數陣列 a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當 a i 為奇數時,i 也是奇數 當 a i 為偶數時,i 也是偶數。你可以返回任何滿足上述條件的陣列作為答案 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5 也會...