头文件都是:#include<algorithm>
qsort篇
qsort(a,len,sizeof(type),mycmp)
//注释
a:待排序的数组地址
len:待排序的数组的长度
type:待排序的数组元素的类型
mycmp:自定义的排序函数
1 /****************一维数组类比较函数************ 2 int mycmp(const void *a,const void *b) 3 { 4 return *(int *)a - *(int *)b; 5 } 6 //注 char、float、double型数组时 7 //只需将return中的int改成相应的类型即可。 8 //(const void *a,const void *b)必须照写 9 ********************************************/ 10 11 12 /****************字符串类比较函数(二维)************ 13 int mycmp(const void *a,const void *b) 14 { 15 return strcmp((char *)a,(char *)b); 16 } 17 ************************************************/ 18 /*************二维数组整体排序比较函数****** 19 int mycmp(const void *a,const void *b) 20 { 21 return *(int *)a-*(int *)b; 22 //注 char、float、double型数组时 23 //只需将return中的int改成相应的类型即可。 24 //(const void *a,const void *b)必须照写 25 } 26 ****************************************/ 27 /*************一维结构体排序比较函数****** 28 struct node 29 { 30 int a; 31 }; 32 int mycmp(const void *c,const void *b) 33 { 34 return (*(node *)c).a-(*(node *)b).a; 35 } 36 *********************************************/ 37 /*****************二维结构体排序********************* 38 struct node 39 { 40 int data; 41 char str[5]; 42 }; 43 int mycmp(const void *a,const void *b) 44 { 45 if((*(node *)a).data!=(*(node *)b).data) 46 return (*(node *)a).data -(*(node *)b).data ; 47 return strcmp((*(node *)a).str,(*(node *)b).str ); 48 49 } 50 *******************************************************/ 51 52 int main() 53 { 54 //qsort篇 55 /*************一维数组类************** 56 int a[7]={2,1,3,5,4,7,6},i; 57 qsort(a,7,sizeof(int),mycmp); 58 for(i=0;i<7;i++) 59 cout<<a[i]<< " "; 60 cout<<endl; 61 **************************************/ 62 63 64 65 /**************字符串(二维)****************** 66 char s[5][4]={"aa","dd","cc","ee","bb"}; 67 qsort(s,5,sizeof(s[0]),mycmp); 68 for(int i=0;i<5;i++) 69 cout<<s[i]<<endl; 70 ***********************************************/ 71 /**************二维数组****************** 72 int a[7][2]={{2,2},{1,9},{3,3},{5,5},{4,4},{7,7},{6,6}},i; 73 qsort(a,7,sizeof(a[0]),mycmp);//分组排序 74 // qsort(a,14,sizeof(int),mycmp);//全部元素一起排序,mycmp为一维int 75 for(i=0;i<7;i++) 76 for(int j=0;j<2;j++) 77 cout<<a[i][j]<< " "; 78 cout<<endl; 79 *************************************************/ 80 /***********************一维结构体排序************* 81 node b[5]; 82 b[0].a=5; 83 b[1].a=3; 84 b[2].a=2; 85 b[3].a=4; 86 b[4].a=1; 87 qsort(b,5,sizeof(node),mycmp); 88 for(int i=0;i<5;i++) 89 cout<<b[i].a <<endl; 90 *************************************************/ 91 92 /*******************二维结构体排序**************** 93 node s[5]={{5,"dd"},{3,"dd"},{5,"cc"},{1,"aa"},{2,"bb"}}; 94 qsort(s,5,sizeof(node),mycmp); 95 for(int i=0;i<5;i++) 96 cout<<s[i].data<<" "<<s[i].str<<endl; 97 *****************************************/