快速排序实践

来源:互联网 发布:js获取http请求状态码 编辑:程序博客网 时间:2024/04/29 16:47

最近想把一些基本的常用算法彻底弄懂,先从快速排序开刀吧奋斗

这段代码是在http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html基础上进行重构而成的

#include <iostream>using namespace std;void quick_sort(int arr[], int left, int right);void main(){int aa[50] ={5,23,12,143,80,69,8,12,32,619, 15,23,312,413,30,26,8,212,72,119, 59,36,122,3,17,86,18,32,62,29, 25,29,1,243,40,6,118,52,11,19, 35,13,92,432,18,36,84,112,23,39,};quick_sort(aa,0,49);for(int i = 0 ; i<50; i++){cout<<aa[i]<<endl;}while(1);}//快速排序void quick_sort(int arr[], int left, int right){    if (left < right)    {        int le = left, ri = right, x = arr[left];        while(le < ri)        { // 从右向左找第一个小于x的数            while(le < ri && arr[ri] >= x)             ri--;              if(le < ri)             arr[le++] = arr[ri]; // 从左向右找第一个大于等于x的数            while(le < ri && arr[le] < x)             le++;              if(le < ri)             arr[ri--] = arr[le];        }        arr[le] = x;// 递归调用         quick_sort(arr, left, le - 1);         quick_sort(arr, le + 1, right);    }}


 

 

 

原创粉丝点击