zoukankan      html  css  js  c++  java
  • python实现快速排序算法

    快速排序算法的思想/特点

    1.选取一个数字作为基准,(基数可以随机取,也可选取首位数字)
    2.将数列第一位开始,依次与此数字比较,如果小于此数,将小数交换到左边,最后达到小于基准数的在左边,大于基准数的在右边,分为两个数组
    3.分别对两个数组重复上述步骤
     
    快速排序算法的时间复杂度:平均时间:O(nlog2n) (n倍的以2为底n的对数),   最坏情况:O(n2) ; 
    对于大的、乱序串列一般认为是最快的已知排序
    稳定性:不稳定

    python实现快速排序算法的代码

    def partition(arr, low, hight):
        i = low - 1
        for j in range(low, hight):
            if arr[j] <= arr[hight]:
                i = i + 1
                arr[i], arr[j] = arr[j], arr[i]
        arr[i + 1], arr[hight] = arr[hight], arr[i + 1]
        return i
    
    def quick_sort(l, low, hight):
        if low < hight:
            key_Index = partition(l, low, hight)
            quick_sort(l, low, key_Index)
            quick_sort(l, key_Index + 1, hight)
        else:
            return
    
    l = [5,8,1,3,15,12,0]
    quick_sort(l, 0, len(l) - 1)
    print("after sort:", l)
    
    # 运行后的结果为:after sort: [0, 1, 3, 5, 8, 12, 15]
  • 相关阅读:
    Hive中将文件加载到数据库表失败解决办法
    Hive安装及配置
    Hadoop下MapReduce实现Pi值的计算
    CentOS下Hadoop运行环境搭建
    kettle案例实现
    假期周总结报告03
    假期周总结报告02
    假期周进度报告01
    阅读笔记6
    阅读笔记5
  • 原文地址:https://www.cnblogs.com/aberwang/p/10497368.html
Copyright © 2011-2022 走看看