程序思想:不断的把待排序数据按数值大小“插入”到已经排好适当位置。
源码:
void swap(int &a, int &b) { //方法一: int tmp = 0; tmp = b; b = a; a = tmp; //方法二: //a = a+b; //b = a-b; //a = a -b; //方法三: //a ^= b ^= a ^= b; //方法四: //a = a+b-(b=a); } int main(int argc,char *argv[]) { int small; int input[] {10,12,11,2,5,78,34,64,46,32}; int size = sizeof(input)/sizeof(input[0]); for(int i = 0;i<size;i++){ small = i; for(int j = i+1;j<size;j++) { if(input[j]<input[i]) { small = j; if(small != i) { swap(input[small],input[i]); } } } } for(auto iter = begin(input); iter != end(input);iter++) { cout<<" "<<*iter; } cout<<""<<endl; }
?分析:假设已插入的数据第一个为最小值small,然后从i+1 开始和small进行对比,如果比small还小,则相互交换值。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧