快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
直接上干货!
1. C语言:
#include <stdio.h>
#include <stdlib.h>void QSort(int A[],int Low,int High)
{int i,j,P;if(Low>=High) return;i=Low;j=High;P=A[Low];while(i<j){while(i<j && P<=A[j]) j--;if(i<j) {A[i]=A[j];i++; }while(i<j && A[i]<P) i++;if(i<j) {A[j]=A[i];j--; }}A[i]=P;QSort(A,Low,i-1);QSort(A,i+1,High);
}main()
{int a[]={49,38,65,97,76,13,27,49},i; QSort(a,0,7);for(i=0;i<8;i++)printf("%d ",a[i]);printf("\n");}