排序算法<三>快速排序
阿新 • • 發佈:2017-05-29
排序算法 %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(){ intarr[6] = {23,1,21, 21,4,19}; quicksort(arr,0,5); for(int i=0;i<6;i++){ printf("%d ",arr[i]); } printf("\n"); }
排序算法<三>快速排序