栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

排序算法-快速排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

排序算法-快速排序

Quick Sort

时间复杂度O(nlogn)

最好情况O(nlogn)

最坏情况O(n**2) 按照冒泡的方法,数组完全倒序

空间复杂度O(logn)

In-place


快速排序是基于比较交换的排序,首先设定一个基准值,一般为数组第一项,设置两个指针分别指向数组开头和末尾,末尾指针首先向前搜索第一个小于基准值的数,将其和基准值交换位置,然后开头指针加一;这时候开头指针向后寻找第一个小于基准值的数,将其和基准值交换位置,然后末尾指针加一。

循环以上过程直到两个指针位置相同,停止。

此时基准值已经在中间位置,其左面为比他小的值,右面为比他大的值;将数组分为左右两部分递归调用上面的方法。

 

 


Java:

public class QuickSort {
    public static void QuickSort(int[] arr,int begin, int end){
        if (begin arr[i]) {
                    i++;
                }
                if (i < j) {
                    tem = arr[i];
                    arr[i] = arr[j];
                    arr[j] = tem;
                    j--;
                }
                QuickSort(arr, begin, i - 1);
                QuickSort(arr, j + 1, end);
            }
        }
    }
}

 Python:

def QuickSort(num_list,begin,end):
    if(beginnum_list[i]:
                i += 1
            if i 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/837647.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号