1. 程式人生 > >排序算法<三>快速排序

排序算法<三>快速排序

排序算法 %d while cnblogs 快速 ace spa 算法 for

#include<iostream>
#include<cstdio>
using namespace std;
void swap(int arr[], int i, int j){
    int t=arr[i];
    arr[i]=arr[j];
    arr[j]=t;
}
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, j); } swap(arr, low, j); return j; } void quicksort(int arr[],int low,int high){ if (low<high){ int p=partition(arr, low, high); quicksort(arr, low, p-1); quicksort(arr,p+1, high); } } int main(){ int
arr[6] = {23,1,21, 21,4,19}; quicksort(arr,0,5); for(int i=0;i<6;i++){ printf("%d ",arr[i]); } printf("\n"); }

排序算法<三>快速排序