2020.10.20快速排序

曾经这是梦开始的地方。
快速排序是解决leetcode题库中的基础,快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。

https://blog.csdn.net/morewindows/article/details/6684558原文
https://www.runoob.com/w3cnote/quick-sort.html菜鸟java

package leetcode;

import java.util.ArrayList;
import java.util.List;

public class demo74 {
    //划分数组
    public int  AdjustArray(int s[],int l,int r){
        int i=l,j=r;
        int x=s[l];
        while (i<j){
            //从右往左
            while (i<j&&x<=s[j]) j--;
            if (i<j){
                s[i]=s[j];
                i++;
            }
            //从左往右
            while (i<j&&x>s[i]) i++;
            if (i<j){
                s[j]=s[i];
                j--;
            }
        }
        s[i]=x;
        return i;
    }
    //分治,递归
    public  void quick_sort1(int s[],int l,int r){
        if(l<r){
            int i= AdjustArray(s, l, r);

            quick_sort1(s,l,i-1);
            quick_sort1(s,i+1,r);
        }
    }
//测试
    public static void main(String[] args) {
        List<Integer> list=new ArrayList<Integer>();
        int s []={2,2,1,4,2,6,7};
        demo74 aaa=new demo74();
        aaa.quick_sort1(s,0,s.length-1);
        for (int dsd :s){
//            System.out.println(dsd);
            list.add(dsd);
        }
        System.out.println(list);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值