快速排序由于排序效率在同为O(n*logn)的几种排序方法中效率较高,快速排序思想——分治法也确实实用。 排序思想也有很多种,例如:冒泡排序、选择排序、插入排序,快速排序,那么此篇就来讲讲快速排序的实现吧~
基本思想
1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。
代码实现 那么下面我们用Java语言搞定:
public class QuickSort {
public void quickSort(int[] a,int l,int r){
if (l<r){
int temp=a[l];
while (l<r){
while (l<r && a[r]>temp){
r--;
}
if (l<r){
a[l++]=a[r];
}
while (l<r && a[l]<=temp){
l++;
}
if (l<r){
a[r--]=a[l];
}
}
a[l]=temp;
quickSort(a,l,temp-1);
quickSort(a,temp+1,r);
}
}
}