美文网首页
工程上使用快排思想调度能力的优化算法

工程上使用快排思想调度能力的优化算法

作者: 托贝多尔 | 来源:发表于2022-03-10 12:56 被阅读0次
def insert_sort(l: list):
    for i in range(len(l)):
        for j in range(i, 0, -1):
            if l[j] < l[j - 1]:
                l[j], l[j - 1] = l[j - 1], l[j]
    return l

def quick_sort(l: list):
    length = len(l)
    if length <= 30:
        return insert_sort(l) # 数据量低于某个指标时采用插入排序,吸取算法的常数时间优越性
    p_index = random.randint(0, length - 1) # 考虑均衡数据样本数据的复杂度
    p = l[p_index]
    less = -1  # 小于n的区域
    more = length  # 大于n的区域
    index = 0  # 当前索引位置
    while index < more:
        if l[index] < p:
            less += 1  # 小于n区域右移1
            l[index], l[less] = l[less], l[index]
            index += 1  # 当前位置加1
        elif l[index] > p:
            more -= 1  # 大于n区域左移1,当前位置不变
            l[index], l[more] = l[more], l[index]
        else:
            index += 1  # 当前位置加1
    return quick_sort(l[0:less + 1]) + l[less + 1:more] + quick_sort(l[more:])

相关文章

  • 工程上使用快排思想调度能力的优化算法

  • 2018-07-13

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

  • 算法

    常用排序算法总结: 参考: 快速排序优化:快排的思路是每次都确定一个数据的位置,基于分治的思想,所以可以使用三路快...

  • 快排+随机数快排

    算法思想:略,应该很简单了 优化,随机数算法写快排learn && wrong:1、包括库函数 和 2、srand...

  • 归并+快排+随机数+随机数快排->two points

    算法思想:略,应该很简单了 优化,随机数算法写快排learn && wrong:1、包括库函数 和 2、srand...

  • 数组排序问题(二)

    目录 荷兰国旗问题 随机快排 堆排序 排序算法的稳定性及其汇总 工程中的综合排序算法 比较器的使用 桶排序、计数排...

  • 理清头绪,动手和思考

    工程思想!工程实践! 扎实专业基础!内功深厚! 算法,控制理论算法! 学习能力!

  • 数据结构:快速排序优化思路

    既然这是一篇主题思想为优化快排的文章,自然就不讨论关于快排的一些定义和基础性的问题,只说快排应该怎么优化。 快排为...

  • mysql优化综合(转)

    一 OS系统优化 1 内核优化 1)IO调度优化 调整Linux默认的IO调度算法. IO调度器的总体目标是希望让...

  • 计算机基础

    数据结构 散列解决冲突的方法有那些? 三种熟悉的排序算法?简述快排过程以及冒泡、插入、快排的区别?以及如何优化快排...

网友评论

      本文标题:工程上使用快排思想调度能力的优化算法

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