美文网首页
快速排序

快速排序

作者: 河神 | 来源:发表于2021-11-11 10:14 被阅读0次
    public static void quick(int[] data,int _left,int _right){

        //判断需要排序的如果是相同位置,或者不合理的左边大于右边的数据,直接跳过
        if (_left>=_right){
            return;
        }

        //左指针 最左边
        int leftPoint = _left;
        //右指针 最右边
        int rightPoint = _right;

        //辅助量
        int aux;
        //基准量 设置为最左边的值
        int baseValue = data[_left];

        //如果左指针移动到与右指针相等的时候,本轮结束
        while (leftPoint!=rightPoint){
            //向左移动,碰到第一个大于的基准量的值停下
            while (rightPoint>leftPoint&&data[rightPoint]>=baseValue){
                rightPoint--;
            }
            //向右移动,碰到第一个小于基准量
            while (rightPoint>leftPoint&&data[leftPoint]<=baseValue){
                leftPoint++;
            }
            //如果此时左指针小于右指针,则把两边值交换,
            //这样,结束之后,左指针左边都是比它小的,右指针右边都是比他大的
            if (rightPoint>leftPoint){
                aux = data[rightPoint];
                data[rightPoint] = data[leftPoint];
                data[leftPoint] = aux;
            }

            System.out.println(leftPoint+"    "+rightPoint);
            System.out.println(Arrays.toString(data));
        }

        //最后把基准值归位,也就是和 此时的右指针交换到中间位置
        aux = data[_left];
        data[_left] =  data[leftPoint];
        data[leftPoint] = aux;
        System.out.println(Arrays.toString(data));

        //再对左边序列 右边序列单独排序
        quick(data,_left,leftPoint-1);
        quick(data,leftPoint+1,_right);
    }

相关文章

  • 七大排序算法之快速排序

    七大排序算法之快速排序 @(算法笔记)[排序算法, 快速排序, C++实现] [TOC] 快速排序的介绍: 快速排...

  • 面试准备--排序

    堆排序 快速排序(simple) 快速排序(regular) 归并排序 Shell排序 插入排序 选择排序 冒泡排序

  • 排序

    插入排序 选择排序 冒泡排序 归并排序 快速排序* 三路快速排序

  • 算法笔记01-排序#2

    快速排序敢叫快速排序,那它一定得快。 快速排序 概述 快速排序也是分治排序的典型,它快,而且是原地排序。不过,要防...

  • PHP 实现快速排序

    导语 这篇了解下快速排序。 快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-...

  • 快速排序的Python实现

    目录 快速排序的介绍 快速排序的Python实现 快速排序的介绍 快速排序(quick sort)的采用了分治的策...

  • 数据结构与算法 快速排序

    起因:快速排序,又称分区交换排序,简称快排,之前没有了解过,抽空学习一下。 快速排序 1 快速排序 快速排序的定义...

  • 数组-快速排序

    采用快速方式对数组进行排序 快速排序百科:快速排序(Quicksort)是对冒泡排序算法的一种改进.快速排序是通过...

  • OC数据结构&算法

    更多整理资料尽在?一平米小站 目录 选择排序 冒泡排序 插入排序 快速排序 双路快速排序 三路快速排序 堆排序 选...

  • 要成功就做一百题-94

    题目名称 今天来几个排序,都是经典题目,包括带拆分的快速排序,堆排序,归并排序。 描述 快速排序快速排序核心就是分...

网友评论

      本文标题:快速排序

      本文链接:https://www.haomeiwen.com/subject/kbvwzltx.html