数据结构与算法——快速排序

//快速排序
#include<stdio.h>
void QuickSort(int arr[], int before, int after );
int main( )
{
  int i;
  int arr[]={3,4,2,6,1,9,8,5,7,2};
  int len=sizeof(arr)/sizeof(arr[0]);
  QuickSort(arr,0,len-1);
  for(i=0;i<len;i++)
  {
    printf("%d ",arr[i]);
  }
}
void QuickSort(int arr[], int before, int after )
{
  int i=before,j=after;
  int temp=arr[before];
  while(i<j)
  {
    while(i<j&&temp<=arr[j])
      j--;
    if(i<j)
     {
      arr[i]=arr[j];
      i++;
     }
    while(i<j&&temp>arr[i])
      i++;
   if(i<j)
    {
      arr[j]=arr[i];
      j--;
    }
   arr[i]=temp;
  }
  if(i-1>before)
    QuickSort(arr,before,i-1);
  if(j+1<after)
    QuickSort(arr,j+1,after);
}

posted @ 2015-10-13 20:16  驻足一分钟  阅读(113)  评论(0编辑  收藏  举报