在进行C/C++编程的时候,C/C++的库函数中已经提供了快速排序法的函数qsort,我们只需要调用它就可以了。
下面是7种快排调用方法(注意下面的都是从小到大排序) 注意C语言是qsort C++是sort
比较函数:(写在main函数前面)
int comp(const void *a,const void *b){
}
在main函数里声明一个数组:
int num[100];
在对数组元素赋值后调用qsort函数:
qsort(num,100,sizeof(num[0]),comp);
二、对char类型数组排序(同int类型)
比较函数:(写在main函数前面)
int comp(const void *a,const void *b){
}
在main函数里声明一个数组:
char word[100];
在对数组元素赋值后调用qsort函数:
qsort(word,100,sizeof(word[0]),comp);
调用之后就完成了对数组的排序。
三、对double类型数组排序(特别要注意)
比较函数:(写在main函数前面)
int comp(const void *a,const void *b){
}
在main函数里声明一个数组:
double num[100];
在对数组元素赋值后调用qsort函数:
qsort(num,100,sizeof(num[0]),comp);(定义的数组是多大,第二个就写多大)
调用之后就完成了对数组的排序。
四、对结构体一级排序
struct In{
}s[100];
按照data的值从小到大将结构体排序。
关于结构体内的排序关键数据data的类型可以很多种,参考上面的例子写。
比较函数:
int comp(const void *a,const void *b){
}
调用qsort:
qsort(s,100,sizeof(s[0]),comp); );
五、对结构体二级排序
struct In{
}s[100];
比较函数:(按照x从小到大排序,当x相等时按照y从大到小排序)
int comp(const void *a,const void *b){
}
调用qsort:
qsort(s,100,sizeof(s[0]),comp); );
六、对字符串进行排序
struct In{
}s[100];
比较函数:(按照结构体中字符串str的字典顺序排序)
int comp(const void *a,const void *b){
}
调用qsort:
qsort(s,100,sizeof(s[0]),comp); );
七、计算几何中求凸包的comp
int comp(const void *a,const void *b){