系统库中自带有sort和qsort两个排序函数,使用起来非常方便,下面对二者的使用方法进行简单的介绍。
sort所需头文件:
#include<algorithm>
函数原型:
template <class RandomAccessIterator, class Compare>
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
作用:
sort()函数为链表排序,默认是升序。如果指定comp的话,就采用指定函数来判定两个元素的大小。
代码示例:
#include<iostream>
#include<algorithm>
using namespace std;
int com(int a,int b){
return a<b; //升序 a>b降序
}
int main(){
int a[10];
int i;
for(i=0;i<10;++i)
cin>>a[i];
sort(a,a+10,com);
for(i=0;i<10;++i)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}qsort所需头文件:
#include<stdlib.h>
函数原型:
void qsort (void * base, size_t num, size_t size, int (* comparator) (const void *, const void *));
参数: 1 待排序数组首地址
2 数组中待排序元素数量
3 各元素的占用空间大小
4 指向函数的指针,用于确定排序的顺序
作用:
使用快速排序例程进行排序,通过指定comp,就采用指定函数来判定两个元素的大小。
代码示例:
#include<iostream>
#include<stdlib.h>
using namespace std;
int com(const void *a,const void *b){
return (*(int*)a-*(int*)b)<0; //降序 >0升序
}
int main(){
int a[10];
int i;
for(i=0;i<10;++i)
cin>>a[i];
qsort(a,10,sizeof(int),com);
for(i=0;i<10;++i)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}转载于:https://blog.51cto.com/beyond316/1229708
本文介绍了C++中sort和qsort两个排序函数的使用方法,包括所需头文件、函数原型及作用,并提供了代码示例。sort适用于链表排序,默认为升序,可通过指定函数判定元素大小;qsort则利用快速排序例程,同样支持通过指定函数确定排序顺序。
601

被折叠的 条评论
为什么被折叠?



