快速排序

#include<iostream>
using namespace std;
int partition(int arr[], int low, int end) {
  int i=low;
  int j=end+1;
  int x=arr[low];
  while (1) {
    while (i < end && arr[++i] < x);
    while (arr[--j] > x);
    if (i >= j) break;
    swap(arr[i],arr[j]);
  }
  swap(arr[low],arr[j]);
  return j;
}
void quicksort(int arr[], int low, int end){
  if (low < end){
    int p=partition(arr, low, end);
    quicksort(arr, low, p-1);
    quicksort(arr, p+1, end);
  }
}
int main() {
  int arr[] = {5,13,6,24,2,8,19,27,6,12,1,17};
  int N=12;
  int n;
  //cin>>n;
  //for (int i=0; i<n; i++){
  //  cin>>arr[i];
  //} 
  quicksort(arr, 0, N-1);    
  for (int i=0; i<N; i++){
    cout<<arr[i]<<" ";
  } 
}

 

posted @ 2017-03-27 19:43  白丁一枚  阅读(70)  评论(0编辑  收藏  举报