快速排序算法
//算法核心思想并不难理解,即取一个值作为参考值,大于等于参考值的放在一边,小于参考值的放在另一边 //程序实现的核心是对两个指针的操作,针对每一个无序的块使用两个指针,一个从左向右滑动,另一个相反, //向右滑动的指针如果碰到一个大于参考值的数,则另一个指针开始向右滑动,直到找到一个小于参考值的数,然后二者交换位置
#include <iostream> using namespace std; void myqsort(int* x,int* y) { int temp,w,* u,*v; u=x;v=y;w=*y; if(x==y)return; while(u!=v)//开始调换元素位置,大于等于w的放在右边,其余放在左边 { if(*u>w)//检查当前u所指向的元素是否大于末尾元素的值,是则执行下面语句块 { //向左查找可以交换的元素 while(u!=v) { if(*v<=w){temp=*u;*u=*v;*v=temp;break;}//找到这样一个元素,则立即进行交换 v--; } } if(u==v)break; u++; } myqsort(x,u-1); myqsort(u,y); } int _tmain(int argc, _TCHAR* argv[]) { int a[]={8,992,35,78,123,6,5,1,10,88,99,123,754,1000,1,0,55}; myqsort(a,a+sizeof(a)/4-1); for(auto& x:a)cout<<x<<endl; return 0; }
相信世界是平的
谨记四个字“修身养性”
大江东去浪淘尽英雄,再牛B的人物最后也是一掊土
向善不是目的,而是抚慰心灵,更多的感受幸福,感谢别人给你行善的机会
相信老子的话:万物生于有,有生于无,一切的道理都源于一个无法证明的假设
我是好是坏就自然而然的摆在那里,并不会因为别人的评价而改变什么,我也不需要别人用一张纸来说明我什么,世间最难得的是自由
谨记四个字“修身养性”
大江东去浪淘尽英雄,再牛B的人物最后也是一掊土
向善不是目的,而是抚慰心灵,更多的感受幸福,感谢别人给你行善的机会
相信老子的话:万物生于有,有生于无,一切的道理都源于一个无法证明的假设
我是好是坏就自然而然的摆在那里,并不会因为别人的评价而改变什么,我也不需要别人用一张纸来说明我什么,世间最难得的是自由
支持大额赞助:

浙公网安备 33010602011771号