C語言 整數陣列去重並排序

2021-10-07 18:50:15 字數 1140 閱讀 7171

一、c語言中自有的qsort()函式

功能:使用快速排序對要排序的物件進行排序

原型:void qsort(void *base,int nelem,int width,int (*fcmp)(const void *,const void *));

引數介紹:

1)待排序陣列的首位址

2)待排序陣列中元素的個數

3)各個元素所佔的空間大小

4)指向排序規則函式的指標,確定排序的規則

注意:這個函式必須要自己寫比較函式,即使要排序的元素是int, float等基礎資料型別

二、將整數陣列去重並排序

題目描述

給定乙個整數序列,把其中重複的整數去掉,並將去重後的序列按從小到大的順序輸出

思路建立乙個陣列b,陣列中的所有元素全部初始化為0,若num在序列**現過,則b[ num ] = 1, 若num還沒有在序列**現過,則b[ num ] = 0

**

#include

#include

#define max 1001

intcmp

(const

void

*a,const

void

*b)//排序規則

intmain()

;//檢測陣列

int n, num;

int size =0;

//序列大小實時更新

scanf

("%d"

,&n)

;for

(int i=

0; i

)qsort

(a,size,

sizeof

(int

),cmp);//

for(

int i=

0; i

)//輸出去重排序後的序列

printf

("%d "

,a[i]);

printf

("\n");

return0;

}

執行結果

隨機整數陣列去重與排序

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序...

陣列去重並排序

巢狀陣列 const foo 10,30,34,11,23,5,20,4,77 2,25,13,5,10 77 深度遞迴遍歷陣列,將所有元素和遍歷到的子陣列中的元素合併為乙個新陣列返回,使用infinity,表示可展開任意深度的巢狀陣列 const a foo.flat infinity set所有...

陣列去重並排序幾種方式

1 解析多維陣列 let array 1,2,2,3 2,3,4,5 6,6,7,8,9,11,12,12,13,14 10 陣列flat 方法可以把多維陣列解析出來 引數為解析的層數 let newarr array.flat 4 結果為 1,2,2,3,2,3,4,5,6,6,7,8,9,11,...