C++总结笔记(八)排序算法之快速排序

快速排序

  1. 将想要排序的数据通过一趟排序分割成两部分,其中的一部分数据比另外一部分的小;然后按照此方法对两部分数据分别快速排序。

#include<iostream>
#include<string>
using namespace std;

void quickSort(int* array,int begin,int end)
{
 int l = begin;
 int r = end;
 int temp = array[begin];

 if(l>=r)
 {
  return;
 }
 while(l != r)
 {
  if(l<r && array[r] > temp)
  {
   r--;
  }
  array[l] = array[r];

  if(l<r && array[l] < temp)
  {
   l++;
  }
  array[r] = array[l];
 }
 array[l] = temp;

 quickSort(array,begin,l-1);
 quickSort(array,l+1,end);
}

int main()
{
 int array[] = {23,45,3,2,24,56,1,67,4};
 int len = sizeof(array)/sizeof(int);
 quickSort(array,0,len-1);

 for(int i = 0;i<len;i++)
 {
  cout<<array[i]<<endl;
 }
 return 0;
}

posted on 2013-05-31 06:53  Kimi_jun  阅读(261)  评论(0编辑  收藏  举报

导航