美文网首页
排序--快速排序

排序--快速排序

作者: iarchitect | 来源:发表于2018-09-06 17:09 被阅读0次

算法原理

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

代码示例

import java.util.Arrays;

public class QuickSort  {

    public static void quickSort(int array[],int low,int high){

        //递归算法出口
        if(low > high){
            return;
        }

        //定义该次排序的基准 key
        int key = array[low];
        int i = low;
        int j = high;
        //完成一次排序
        while (i<j){
            //从右往左找到第一个小于key的数
            while (i<j && array[j]>key){
                j--;
            }
            //从左往右找到第一个大于key的数

            while (i<j && array[i]<=key){
                i++;
            }
            //交换

            if (i<j){
                int p = array[i];
                array[i] = array[j];
                array[j] = p;
            }
        }

        //调整key的位置
        int p = array[i];
        array[i] = array[low];
        array[low] = p;

        //对key左边的快排
        quickSort(array,low,i-1);
        //对key右边的快排
        quickSort(array,i+1,high);
    }

    public static void main(String[] args) {

        int[] unsortedArray = {5,4,1,3,6,9,8,7,2,10};

        quickSort(unsortedArray,0,unsortedArray.length-1);

        System.out.println("最终结果:");
        System.out.println(Arrays.toString(unsortedArray));
    }
}

运行结果

image.png

相关文章

  • 面试准备--排序

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

  • 排序

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

  • Datawhale | 编程第6期 Test 3

    排序 1.实现归并排序、快速排序、插入排序、冒泡排序、选择排序、堆排序(选做) 归并排序 快速排序 插入排序 冒泡...

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

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

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • OC数据结构&算法

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

  • 常见排序算法

    这里介绍四种排序算法,选择排序、快速排序、归并排序、计数排序 选择排序(使用递归) 选择排序(使用循环) 快速排序...

  • 排序算法

    冒泡排序 选择排序 插入排序二分插入排序希尔排序 堆排序 归并排序 快速排序 交换排序类:冒泡排序快速排序 选择排...

  • 算法笔记01-排序#2

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

  • php-归并排序、快速排序、堆排序

    归并排序、快速排序、堆排序 时间复杂度 O(nlogn) 归并排序 快速排序(快排) 堆排序

网友评论

      本文标题:排序--快速排序

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