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

    # QuickSort 快速排序_Python实现
    
    
    def quick_sort(li):
        if len(li) < 2:
            return li
        # 选取基准值, 一般选取第一个, 并将其从中剔除
    
        # mid = li[0]
        # li.remove(mid)
        mid = li.pop(0)
    
        # 定义左右两个数列
        left, right = [], []
    
        for i in li:  # 大小判断, 分别放置
            if i > mid:
                right.append(i)
            else:
                left.append(i)
        # 使用迭代, 继续进行拆分比较
        return quick_sort(left) + [mid] + quick_sort(right)
    
    
    list = [1, 55, 98984, 65, 165, 356, 54, 3, 645, 74, 64, 35]
    
    li = quick_sort(list)
    print(li)
    

      

    快速排序:

    快速排序采用的是分而治之的方法.随便取一个值,
    然后把列表中所有的值与之对比, 大的放在一起, 小的放在一起.
    然后使用递归, 将分好的列表继续分下去,直到无法再分. 依次返回便是排序好的列表.
    快速排序是内部排序中非常不错的选择.

    注意点:

    因为使用递归, 所以需要在函数开始进行列表判断, 是否满足继续分下去的条件(是不是最起码有两个元素)
    取基准值的时候, 可以随便取, 但在取之后需要将基准从列表中移除. 此处使用pop来完成两个操作.
    快速排序用了一个遍历, 但是因为有用到递归.
    除了使用一个变量外, 还用了两个列表.
    快速排序的空间性能并不算优秀.相较于其他算法, 最大的优势在于速度快.

  • 相关阅读:
    PHP运行及语句及逻辑
    数据库基础,表及SQL语句
    php后台修改人员表信息
    php后台增加删除修改跳转页面
    用PHP访问数据库
    php登录注册页面及加载
    php做登录注册页面及加载
    实现基于物理的渲染
    Tile-Based Deferred Rendering
    矩阵基础 2
  • 原文地址:https://www.cnblogs.com/jrri/p/12099928.html
Copyright © 2011-2022 走看看