美文网首页
java快速学习排序---快排算法

java快速学习排序---快排算法

作者: 消失的码农 | 来源:发表于2019-05-30 00:02 被阅读0次

一、快速排序是(挖坑法)是挖坑填数 + 分治来实现。

1.快速排序的基本思想:

1). 先从数列中取出一个数作为基准数。
2). 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3). 再对左右区间重复第二步,直到各区间只有一个数。

2.快速排序的图示:

图片来源自网络

3.快速排序的算法

public class QuickSort {
    public static void main(String[] args) {
        int [] a = {1,6,8,7,3,5,16,4,8,36,13,44};
        QKSourt(a,0,a.length-1);
        for (int i:a) {
            System.out.print(i + " ");
        }
    }
    private static void QKSourt(int[] a, int start, int end) {
        if (a.length < 0){
            return ;
        }
        if (start >= end){
            return ;
        }
        int left = start;
        int right = end;
        int temp = a[left];
        while (left < right){
            while (left < right && a[right] > temp){
                right -- ;
            }
            a[left] = a[right];
            while (left < right && a[left] < temp){
                left ++ ;
            }
            a[right] = a[left];
        }
        a[left] = temp;
        System.out.println(Arrays.toString(a));
        QKSourt(a, start, left -1);
        QKSourt(a,left+1,end);
    }
}

相关文章

  • 排序

    八大排序算法 一、归并排序 递归及非递归的JAVA实现 二、快速排序 快排算法JAVA实现 三、堆排序 堆排序堆排...

  • java快速学习排序---快排算法

    一、快速排序是(挖坑法)是挖坑填数 + 分治来实现。 1.快速排序的基本思想: 2.快速排序的图示: 3.快速排序的算法

  • 2018-07-13

    快速排序算法 快排普通版本: 快排优化版本: 测试代码:

  • 06-20:刷题综合三:快排

    快排: 1、快速排序 2、快速排序寻找第K个大 3、最小的K个数 1、手写快排算法 class Solution:...

  • 排序算法-堆排序

    参考: Java排序算法(五):堆排序 【算法与数据结构】图说堆排序 【数据结构】排序算法:希尔、归并、快速、堆排...

  • 快速排序

    快速排序 原理:欧几里德算法快排的概念:分而治之 代码:

  • Objective-c各种排序算法

    Objective-C排序算法 快排 快速排序是面试中经常会被问的一个排序算法。一般要求手写。快排是对冒泡排序的一...

  • 常见排序的java实现

    常见排序的java实现 常见排序java实现 插入排序(二分插入排序) 希尔排序 快速排序(三数中值快排) 冒泡排...

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

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

  • 可能是最容易理解的快速排序原理讲解

    Clojure 快速排序 快排 快速排序(Quicksort)是一种优秀的排序算法,这个就不多介绍了。本文用最通俗...

网友评论

      本文标题:java快速学习排序---快排算法

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