qsort:快速排序
sort:快速排序的優化版
而且qsort的比較函數的參數需要轉換類型,並且用'-'進行比較,所以一般用sort
代碼:
#include <iostream>
#include <algorithm> //sort頭文件
#include <stdlib.h> //qsort頭文件
using namespace std;
struct Node{
int x;
int y;
bool operator <(const Node& a) const{
return x < a.x; //從小到大
//return x < a.x; //從大到小
}
};
int cmp(const void* a, const void* b) {
Node* a1 = (Node*)a;
Node* b1 = (Node*)b;
return a1 -> x - b1 -> x; //從小到大
//return b1 -> x - a1 -> x; //從大到小
}
struct array{
Node* node;
};
int main() {
array* arr = new array;
arr->node = new Node[2];
arr -> node[0].x = 1;
arr -> node[1].x = 2;
arr -> node[2].x = 3;
arr -> node[3].x = 4;
//sort(arr -> node,arr -> node + 4);
qsort(arr -> node, 4, sizeof(arr -> node[0]), cmp);
for(int i = 0; i < 4; i++)
cout<<arr -> node[i].x<<ends;
}