您的位置:首页 > 其它

关于sort和qsort的使用方法

2013-06-26 10:57 330 查看
系统库中自带有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;
}


本文出自 “菜鸟的进阶之路” 博客,请务必保留此出处http://beyond316.blog.51cto.com/7367775/1229708
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: