一、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 <stdio.h> #include <stdlib.h> #define MAX 1001 int cmp(const void *a, const void *b) //排序规则 { return *(int *)a - *(int *)b; } int main() { int a[MAX]; //序列 int b[MAX]={0}; //检测数组 int n, num; int size = 0; //序列大小实时更新 scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%d",&num); if(b[num]==1) continue; a[size] = num; b[num] = 1; size += 1; } qsort(a,size,sizeof(int),cmp);// for(int i=0; i<size; i++) //输出去重排序后的序列 printf("%d ",a[i]); printf("\n"); return 0; } 运行结果