1. 程式人生 > >C++自帶快速排序的使用

C++自帶快速排序的使用

需要的標頭檔案:

#include<algorithm>

程式碼很簡單,就一行:

sort(a+1,a+n+1,cmp);

a表示要排序的陣列,含n個元素,而cmp是判定條件。

比如說:

bool cmp(int i,int j)
{
    return i<j;
}

就是從小到大排序,反之則return i>j;

當然這只是基於a是int型別的陣列下的cmp函式,假如想捆綁多個數組(比如說下標label[]),需要用到結構體。

例如:

#include<algorithm>
    struct newdata
    {
        int w,label;
    };
    newdata a[10];
bool cmp(newdata i,newdata j) //注意型別變了
{
    return i.w<j.w;
}
int main()
{
    sort(a+1,a+n+1,cmp);
}

這樣子排序的關鍵字是a[].w,但是交換時還是會把整個結構體交換過去。

可以自己嘗試一下。