关于sort和qsort的使用方法

   系统库中自带有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;
}


你可能感兴趣的:(sort,qsort)