美文网首页
排序经典算法

排序经典算法

作者: 木叶苍蓝 | 来源:发表于2020-05-07 22:22 被阅读0次
排序算法时间复杂度.png
冒泡算法(bubble sort)
d0 = [9,8,7,6,5,4,3,2,1,0]
while True:
    state = 0 # 假设本次循环没有改变
    for i in range(len(d0) - 1):
        if d0[i] > d0[i+1]:
            d0[i], d0[i+1] = d0[i+1], d0[i]
            state = 1
    if not state: break
print d0
选择排序(selection sort)
def select_sort(data):
    d1 = []
    while len(data):
        min = [0, data[0]]
        for i in range(len(data)):
            if min[1] > data[i]:
                min = [i, data[i]]
        del data[min[0]]
        d1.append(min[i])
    return d1

if __name__ == "__main__":
    d0 = [9,8,7,6,5,4,3,2,1,0]
    d1 = select_sort(d0)
    print d1
插入排序(insertion sort)
def direct_insertion_sort(d):
    d1 = [d[0]]
    for i in d[1:]:
        state = 1
        for j in range(len(d1)-1, -1, -1):
            if i >= d1[j]:
                d1.insert(j+1, i) # 将数据插入数组
                state = 0
                break
        if state:
            d1.insert(0, i)
    return d1

if __name__ == "__main__":
    d0 = [9,8,7,6,5,4,3,2,1,0]
    d1 = direct_insertion_sort(d0)
    print d1
快速排序(quick sort)
def quick_sort(data):
    d = [[], [], []]
    d_pivot = data[-1]
    for i in data:
        if i < d_pivot:
            d[0].append(i)
        elif i > d_pivot:
            d[2].append(i)
        else:
            d[1].append(i)

    if len(d[0]) > 1:
        d[0] = quick_sort(d[0])
    if len(d[2]) > 1:
        d[2] = quick_sort(d[2])

    d[0].extend(d[1])
    d[0],extend(d[2])
    return d[0]

if __name__ == "__main__":
    d0 = [9,8,7,6,5,4,3,2,1,0]
    d1 = quick_sort(d0)
    print d1

相关文章

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 用 Python 实现十大经典排序算法

    今天,详细的跟大家分享下 10 种经典排序算法。 10种经典排序算法包括冒泡排序、选择排序、快速排序、归并排序、堆...

  • 序言-算法

    此文集将介绍一些经典的算法,从经典的排序算法开始不定期的补充纠错更新 1、经典排序算法 1.1桶排序Bucket ...

  • 算法学习(1)-排序算法

    八大排序算法九大排序算法再总结[经典排序算法][集锦][直观学习排序算法] 视觉直观感受若干常用排序算法 快速排序...

  • 十大经典排序算法&七大查找算法

    十大经典排序算法: 十大经典排序算法的时间、空间复杂度: 冒泡排序(Bubble Sort) 算法描述: 1、比较...

  • Algorithm -- 排序算法

    单链表十大经典排序算法冒泡排序选择排序插入排序归并排序快速排序堆排序计数排序桶排序 1. 十大经典排序算法 十大经...

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • 2020-04-30-排序算法

    冒泡排序 直接选择排序 插入排序 快速排序 参考 算法学习笔记17-经典排序算法八大排序算法稳定性分析

  • 2018-06-30

    排序算法之归并排序 归并排序算法是排序算法中的经典算法之一,其核心思想是利用归并的思想实现的排序方法,该算法采用经...

  • 排序算法

    经典排序算法 高级排序算法 计数排序 时间复杂度O(n)基数排序 先排序高位(位数多的), 再排序高位

网友评论

      本文标题:排序经典算法

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