如何把乙個整數陣列排序並且去掉重複資料?

2025-02-07 11:10:27 字數 2991 閱讀 1779

在j**a中,給出乙個陣列,裡面有重複的數字,要求將重複的數字去掉然後給新的陣列進行排序

1樓:瀧豔枋

陣列是沒有去重的函式的,你可以用set或者map來去重 ,如果你想要**,可以追問。

2樓:我只看帖不發言

可以用set或者map來去重。

也可以用乙個比較笨的方法,先將陣列排序。

然後從前面開始向後做迴圈地比較。

相等的話,就刪除。

不相等就留著,迴圈之後得到的,就應該是你想要的了。

3樓:網友

既然會排序那就先排序,然後迴圈判斷相鄰的兩個數是否一樣,一樣就是重複了,這只是一種思路,其他的不用我多說了吧。

將乙個整型陣列中的各個值進行比對,刪除重複的數值,並向前對齊.

4樓:匿名使用者

這是程式的一部分,框架什麼的就不打了,可能有些小問題,整體思路是沒錯的。

你沒說要保留原始資料所以直接在儲存輸入的陣列裡操作,如需要保留,只要加多乙個相同行數的陣列,然後在判斷處稍作改變就行。

numbers[a][b];//---儲存輸入的二維陣列。

j**a問題:乙個陣列(1-30公升序排列,任意去除5個數字), 乙個迴圈 要求輸出和為26的兩個數字,不能重複

5樓:水晶

陣列排序有專門的api,這裡就不說了。

獲取1-30的5個隨機數即可。

使陣列的下標和裡面的值相同,那麼 可以通過 陣列[26-當前下標] 是否被去除 來輸出。

int a = new int[31];

賦值,去除。

for(int i=1;i<26/2;i++)if(a[i]!=0 &&a[26-i]!=0) 輸出;

有問題請追問。

怎麼刪除乙個陣列裡面 所有重複的內容?

6樓:匿名使用者

版本 2.子程式 _按鈕1_被單擊。區域性變數 局_計次, 整數型。

區域性變數 局_計次1, 整數型。區域性變數 你好1計次, 整數型。區域性變數 你好2計次, 整數型。

區域性變數 你好3計次, 整數型。計次迴圈首 (取陣列成員數 (集文字陣列), 局_計次) .如果真 (局_計次 > 取陣列成員數 (集文字陣列)) 跳出迴圈 ()如果真結束 .

計次迴圈首 (取陣列成員數 (集文字陣列), 局_計次1) .如果真 (局_計次空滲1 = 局_計次) 到迴圈尾 ()如果真結束 .如果真 (局_計如肆次1 ≥ 取陣列成員數 (集文字陣列)) 跳出迴圈 ()如果真結束 .

如果真 (集文字陣列 [局_計次] =集文字陣列 [局_計次1]) 如果真 (集文字陣列 [局_計次] =你好1」) 你好1計次 = 你好1計次 + 1 .如鬥橡脊果真結束 .如果真 (集文字陣列 [局_計次] =你好2」) 你好2計次 = 你好2計次 + 1 .

如果真結束 .如果真 (集文字陣列 [局_計次] =你好3」) 你好3計次 = 你好3計次 + 1 .如果真結束 刪除成員 (集文字陣列, 局_計次, )如果真結束 .

計次迴圈尾 ()計次迴圈尾 ()

7樓:匿名使用者

下面是演算法時間複雜度為o(n2+n)的偽**:

qsort(a) /先排序。

譁指/for i←0 to length[a]i←0while i < length[a]do j←i

while a[j] =a[i]

do i←i + 1

if i - j > 1

then make_delflag(a, j, (i - 1) )啟改 遇連續相同元素則作刪除標記(即**a中不可能出現的那個值,或只記住亂旁配此值)

8樓:匿名使用者

樓主,你還是發你的原始碼出來吧!要不別人怎麼知道你的陣列變數裡是什麼啊!

j**a中怎麼樣子找出陣列中重複的數,並去除

9樓:網友

使用set集合處理即可,因為set集合有特性,自動去除重複的元素;

只要迴圈陣列,新增到set中就可以實現了。

10樓:我有夜遊症

思想大概就是新建乙個陣列,然後把原陣列的值放入新陣列,檢查有沒有已存在的,放不進去的就是重複的,新陣列就是你需要的。

11樓:漫步匆匆

恩,把陣列轉換成set集合再轉回去就行,

12樓:韓東

遍歷陣列,將值放入treeset集合,這個集合不允許重複,而且這個效率比較高。

乙個j**a程式設計題,怎麼求出陣列中重複數字的出現次數,並按次數從大到下排序

13樓:匿名使用者

排序的話簡單,arrays的sort方法可以結局出現的次數的話,推薦用map來做。

list list = "aa,xx,ss,xx,ss,e,w,a,aa".split(","));

map map = new hashmap();

for (string s : list);

14樓:匿名使用者

前提 有乙個陣列 :int a = ;

先要知道陣列的最大最小值。

比如最大10,最小1;

int temp = new int[11] //比最大值大1,保證最後乙個座標是最大值。

for(int i=0;i《陣列元素個數;i++)temp[a[i]]+

執行完了之後你對temp陣列排序一下就行了,排序不用我說了吧排序的時候要建立個陣列記錄排序後的數字以前的下標,下標就是那個重複出現的數字。

這是最簡單的方案,但是如果你最大值最小值較大,就不適用了。

15樓:匿名使用者

使用三個變數儲存在比較。

16樓:匿名使用者

迴圈讀取,迴圈比較!

如何對n個整數數進行排序要求時間複雜度on空

可以申請一個大小為65536的陣列a,陣列的x下標代表數字x,a x 代表x 在整數序列中出現的次數。掃描一遍整數序列就可以完成對該整數序列的排序,時間複雜度為o n 如何對n個整數數進行排序,要求時間複雜度o n 空間複雜度o 1 題目 如何對n個不重複出現的整數序列進行排序,已知這些數的範圍為 ...

如何把二進位制變數轉化成陣列,如,如何把一個二進位制變數轉化成陣列,如101010101 1 0 1 0 10

re 如何把一個二進位制變數轉化成陣列,如101010101 1 0 1 0 10 1 01 這個可以用位操作 和 移位操作 解決。如 101010101 0x0001 0 取得第0位 順序按彙編的從右至左 101010101 0x0002 1 取得第1位 以此類推 移位是為了將該位如果是0就存為整...

如何編寫乙個程式用陣列判斷迴文數?

data segment str db 定義一串字串可以看成是陣列形式吧。data ends code segment assume cs code,ds datastart mov ax,data mov ds,ax mov bx,offset str mov di, mov si, compe...