Java实现快速排序

import java.util.Arrays;

public class QuickSort {
    public void sort(int[] arr ,int left,int right){

        if(left>right) return;
        int base = arr[left];
        int low = left;
        int hign = right;
        while (left<right){
            while (right>left && arr[right]>base){
                right--; //2
            }
            while (left<right && arr[left]<=base){
                left++; // 1
            }
            if(left<right){
                int temp = arr[left]; //temp = 10
                arr[left] = arr[right]; // arr3 = 10
                arr[right] = temp; // arr
            }
        }

        int p = base;
        arr[low]=arr[left];
        arr[left]=p;
        sort(arr,low,left-1);
        sort(arr,left+1,hign);
    }
    public static void main(String[] args){
        int[] arr = {5,10,4,8,9};
        QuickSort qs = new QuickSort();
        qs.sort(arr,0,4);
        System.out.print(Arrays.toString(arr));
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 红黑树-实现

    用户2436820
  • java获取web数据和发送E-mail

    java -classpath .:path/to/mail.jar path/to/message.txt 运行程序

    用户2436820
  • 过滤器模式过滤器模式

    过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻...

    用户2436820
  • 数据结构 浅谈归并排序

    友情提示:此篇文章大约需要阅读 8分钟33秒,不足之处请多指教,感谢你的阅读。订阅本站

    Debug客栈
  • 算法之常见排序算法-冒泡排序、归并排序、快速排序

    对于编程中琳琅满目的算法,本人向来是不善此道也不精于此的,而说起排序算法,也只是会冒泡排序。还记得当初刚做开发工作面试第一家公司时,面试官便让手写冒泡排序(入职...

    本人秃顶程序员
  • 算法面试经常需要你手写的三个排序算法(Python语言)

    五分钟学算法
  • 一遍文章搞定归并排序-java版

    shengjk1
  • 剑指offer - 最小的k个数 - JavaScript

    题目描述:输入整数数组 arr ,找出其中最小的 k 个数。例如,输入 4、5、1、6、2、7、3、8 这 8 个数字,则最小的 4 个数字是 1、2、3、4。

    心谭博客
  • 快速排序填坑口诀

    快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此在很多笔试面试中出现的几率...

    KevinYan
  • 前端学数据结构与算法(七): 从零实现优先队列-堆及其应用

    为什么说树结构是01世界里最重要的数据结构,因为只要调整一下节点的存储顺序或枝杈多少,解决问题的类型就可以完全不同。本章介绍的堆也是二叉树的一种,与二叉搜索树想...

    飞跃疯人院

扫码关注云+社区

领取腾讯云代金券