排序算法之快速排序

来源:互联网 发布:淘宝动漫周边网店 编辑:程序博客网 时间:2024/06/05 01:44
归并排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列

#include<iostream>
using namespace std;
void QSort(int arr[],int begin,int end)
{
 if(begin>=end)
 {
  return;
 }
 int first=begin,last=end;
 int key=arr[first];
 
 while(first<last)
 {
  while(first<last&&arr[last]>=key)
  {
   last--;
  }
  arr[first]=arr[last];
  
  while(first<last&&arr[first]<=key)
  {
   first++;
  }
  arr[last]=arr[first];
 }
 arr[first]=key;
 QSort(arr,begin,first-1);
 QSort(arr,first+1,end);
}

int main()
{
 int arr[]={11,4,7,8,43,2,56,23,8,1,3,9};
 int size = sizeof(arr)/sizeof(int);
 QSort(arr,0,size-1);
 
 for(int i=0;i<size;i++)
 {
  cout<<arr[i]<<" ";
 }
 
 return 0;
}
原创粉丝点击