快排例题
纪念品分组
https://ac.nowcoder.com/acm/problem/16640
#include <iostream> #include <algorithm> using namespace std; **bool cmp(int a,int b){**//快速排序法,bool函数里定义两个数组名,返回值中从小到大即a<b,反之a>b; ** return a<b;** **}** int main() { int w,n,a[1000000],count=0,i,j; cin>>w>>n; for(int i=0;i<n;i++){ cin>>a[i]; } **sort(a,a+n,cmp);**//用函数库以存在的函数sort,a表示数组名,n为个数,调用bool函数 for( i=0,j=n-1;i<j;){ if(a[i]+a[j]<=w){ count++; i++,j--; }else{ count++; j--; } } if(i==j){ count++; } cout<<count<<endl; return 0; }
所以快排代码
#include <algorithm>
bool cmp(int a,int b){
return a<b(a>b)
}
sort(a,a+n,cmp)</algorithm>