zoukankan      html  css  js  c++  java
  • 快速排序

    快速排序

    快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列

    选择最后一个数为基数,以基数为界将数据分为两部分,基数左侧小于基数,基数右侧大于等于基数

       public static void quickSort(int left, int right, int[] arr) {
            if (left>right) return;
            int leftIndex = left;
            int rightIndex = right;
            int boundIndex = right;
            int temp = 0;
            while (leftIndex < rightIndex) {
                /**
                 * 从最左侧开始寻找大于基数的数据
                 */
                while (leftIndex < rightIndex && arr[leftIndex] <= arr[boundIndex]) {
                    leftIndex++;
                    
                }
                /**
                 * 从最右侧开始寻找小于基数的数据
                 */
                while (rightIndex > leftIndex && arr[rightIndex] >= arr[boundIndex]) {
                    rightIndex--;
                }
                /**
                 * 找到后进行交换
                 */
                temp = arr[leftIndex];
                arr[leftIndex] = arr[rightIndex];
                arr[rightIndex] = temp;
            }
            /**
             * 最后将基数放如两部分之间
             */
            if (leftIndex == rightIndex) {
                temp = arr[boundIndex];
                arr[boundIndex] = arr[rightIndex];
                arr[rightIndex] = temp;
            }
            quickSort(left, leftIndex - 1, arr);
            quickSort(rightIndex + 1, right, arr);
    
    
    
        }
    
    
  • 相关阅读:
    商城02——dubbo框架整合_商品列表查询实现_分页
    商城项目01——工程介绍及搭建
    利用ssm框架做一个客户管理系统
    SpringMVC学习笔记
    spring问题
    Spring学习笔记
    MyBatis学习笔记二
    MyBatis学习笔记
    二分查找与几种排序方法
    配置 spring boot 的 banner (自定义或取消banner)
  • 原文地址:https://www.cnblogs.com/huangshen/p/13332166.html
Copyright © 2011-2022 走看看