Bootstrap

sort()与qsort()

一、sort()

sort函数:#include <algorithm>

默认从小到大,如果降序可写第三方函数进行排序,
EXP:sort(array,array+n,cmp)
①sort(数组首地址,首地址+排序个数)
第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。
也就是说,排序的区间是[a,b)。
简单来说,有一个数组int a[100],要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。
②sort(数组首地址,首地址+排序个数,比较函数)

1.普通排序,升序
 #include<iostream>  
 #include<algorithm>  
 using namespace std;  
 int main()  
 {  
  int a[10]={7,3,4,6,5,1,2,9,8,0};  
  sort(a,a+10);  ///此处数组范围必须用   a+10 的格式,不能用  sizeof(a)  
  for(int i=0;i<10;i++)  ///也可以用 sort(a,a+sizeof(a)/4),此处相当于sort(a,a+10)
  cout<<a[i]<<" ";  
  return 0;  
 }  

 OUTPUT:0 1 2 3 4 5 6 7 8 9


普通排序,降序
 #include <iostream>  
 #include <algorithm>  
 using namespace std;  
 bool cmp(int a,int b)  
 {  
  return a>b;  
 }  
 int main()  
 {  
  int a[10]={7,3,4,6,5,1,2,9,8,0};  
  sort(a,a+10,cmp);  
  for(int i=0;i<10;i++)  
  cout<<a[i]<<" ";  
  return 0;  
 }  
;