您的位置 首页 java

Java排序算法——快速排序

快速排序 (Quick Sort)

简介:

快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

描述:

  1. 从数列中挑出一个元素,称为 “基准”;
  2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区( partition )操作;
  3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

Java代码

以下代码为方便复制

public static void main(String[] args) {
 int[] array = new int[]{0,53,63,38,71,25,22,11,95,38};
 int[] sort = sort(array,0,array.length - 1);
 System.out.println(Arrays.toString(sort));
}
public static int[] sort(int []array,int L,int R) {
 //代表左边的指针
 int i = L;
 //代表有边的指针
 int j = R;
 //基数
 int bais = array[L];
 //条件:左指针一定要小于等于右指针
 while(i <= j){
 //1、如果右边的指针指的数大于基数,则指针左移,直到找到比基数小的数的指针
 while (array[j] > bais){
 j--;
 }
 //2、如果左边的指针小于基数,则右移指针,直到找到比基数大的数的指针
 while (array[i] < bais){
 i++;
 }
 //3、如果左指针小于等于右指针,则左右指针指的数交换
 if(i <= j){
 int temp = array[i];
 array[i] = array[j];
 array[j] = temp;
 i++;
 j--;
 }
 }
 if(L < j){ sort(array,L,j); }
 if(R > i){ sort(array,i,R); }
 return array;
}
 

文章来源:智云一二三科技

文章标题:Java排序算法——快速排序

文章地址:https://www.zhihuclub.com/180847.shtml

关于作者: 智云科技

热门文章

网站地图