sort()函数是对连续空间排序,最好用数组首地址和偏移量这种写法,如果用 & 地址就必须完全包括进去不然就出现各种奇怪的结果:
头文件<iostream> 和 <algorithm>
【sort排序结构体】请看poj 1543 Perfect Cubes【sort排序结构体】
用 首地址+偏移量 【正确】
#include<iostream> #include <algorithm> using namespace std; int main() { int a[5]={6,5,87,7,9}; sort(a,a+5); //最好用这个 //sort(&a[0],&a[5]); int i; for(i=0;i<5;i++) printf("%d ",a[i]); return 0; }
用 & 地址写法:
sort(&a[0],&a[5]);【正确】
sort(&a[0],&a[4]); 【错误】
sort(&a[1],&a[5]); 【错误】
sort 对于 字符串也可以很好的排序
#include<iostream> #include <algorithm> using namespace std; int main() { char a[6]="bcdae"; printf("%s\n",a); int i; for(i=0;i<5;i++) printf("%c ",a[i]); printf("\n"); sort(a,a+5); for(i=0;i<5;i++) printf("%c ",a[i]); return 0; }