一.知识点
1.c++快速排序函数sort(start,end,排序方法cmp)
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,实质需要自己写一个判断函数cmp,不写时默认的排序方法是从小到大排序。
//如果a>b时,返回值<0,则a排在b前面,对应的从大到小排序
bool cmp(int a,int b)
{
return a < b;
}
int main()
{
int a[] = {5,3,7,3,9,4};
sort(a,a+6,cmp);
return 0;
}
//结构体排序
struct student {
int number1;
int number2;
}arr[100];
bool cmp(student& i , student& j) //按照结构体中的number1排序
{
return i.number1 < j.number1;
}
int main()
{
int n;
sort(a,a+n,cmp);
}
二.题目
1.子段和最大值最小,使用二分法思想的核心:
二分查找要求被查找的序列具有单调性,数组分的次数越多,每段和就越小,就越有可能满足要求。正是基于这一单调的线性关系,将最优化问题转换为判定问题。