快速排序

来源:互联网 发布:淘宝新店铺怎么刷信誉 编辑:程序博客网 时间:2024/05/18 00:46

1.原理:


  Divide:       随便选一个数作为基准数,把数组分成两个子列

  Conquer:  分别两个子列进行排序


2.代码:

 void quick_sort(int s[],int l,int r) { if(l < r) { int i = l, j = r, x = s[l];         //把数组的第一项定义为基准数,即把第一项挖空  while( i < j) { while( i < j && s[j] >= x)  //从右端开始寻找比 X 小的数     j--; if(i < j)                   //找到后把它移到左端     s[i++] = s[j]; while( i < j && s[i] <= x)  //从左端开始寻找比 X 大的数     i++; if( i < j )                 //找到后把它移到右端     s[j--] = s[i]; } s[i] = x; quick_sort(s,l,i-1);           //递归  quick_sort(s,i+1,r); }  }


0 0
原创粉丝点击