快速排序

2020-03-02 157次浏览 已收录 7个评论

冒泡的加强版,速度的快慢取决于选的基准(中轴)

package 排序;

import java.util.Arrays;

public class 快排 {
public static void main(String[] args) {
 int []a= {3 ,2 ,4 ,1};
 kuai(a,0,a.length-1);
 System.out.println(Arrays.toString(a));
}
static void kuai(int a[],int l, int r) {
 if(l>=r)//说明此时左边的值全部小于flag,右边全部大于flag
  return;
 int left=l,right=r;
 int flag=a[l];//基准
 while(left<right) {
  while(left<right && a[right]>=flag) {
   right--;
  }
  if(left<right) {
   //已经找到右边的小于flag,(a[right]>=flag不满足)
   a[left]=a[right];
  }
  while(left<right && a[left]<=flag) {
   left++;
  }
  if(left<right) {
   //已经找到左边的大于flag,(a[left]<=flag不满足)
   a[right]=a[left];
  }
  if(left>=right) {
   a[left]=flag;
  }
 }
 kuai(a,l,right-1);
 kuai(a,right+1,r);
}
}

 


渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:快速排序
喜欢 (0)

您必须 登录 才能发表评论!

(7)个小伙伴在吐槽
  1. 记住这个网站了
    努力2020-03-27 12:47
  2. 我加你了哦
    小蚯蚓2020-03-27 13:38
  3. 奥利给
    你好2020-03-27 14:04
  4. 记住这个网站了
    中国加油小子2020-03-28 16:27
  5. good厉害了
    渣渣辉2020-05-26 09:27
  6. 我也是小白以后多多交流
    渣渣辉2020-05-26 09:53
  7. 我也是学计算机的
    笔记本2020-05-26 10:43