原理介绍:
sort并不是简单的快速排序,它结合了插入排序和推排序进行了优化。系统会根据你的数据形式和数据量自动选择合适的排序方法。它在一次完整排序中不同的情况会选用不同方法。比如给一个数据量较大的数组排序,开始采用快速排序,分段递归,分段之后每一段的数据量达到一个较小值后它就不继续往下递归,而是选择插入排序,如果递归的太深,他会选择推排序。
使用说明:
传入排序的开始地址,结束地址。以及比较方法。
sort(first_pointer,first_pointer+n,cmp);
举例:
数组排序:
int A[100];
bool cmp(int a,int b) {
return a < b;
}
sort(A,A+100,cmp);
vector排序:
sort(v.begin(),v.end());
结构体排序:
//按照商品的价格排序,价格相同时按照价值排序
struct goods {
int price;
int value;
};
bool cmp(goods a,goods b) {
if (a.price == b.price) {
return a.value> b.value;
}
return a.price > b.price;
}
struct goods num[length];
sort(goods , goods +length, cmp);