美文网首页
稳定排序方法

稳定排序方法

作者: 司徒道 | 来源:发表于2017-07-03 11:44 被阅读0次

    1.插入排序
    思想:将一个数字序列引申为两部分,第一部分为原始序列除去首数字,第二部分为变长序列,初始值为原始序列的首数字,并不断将原始序列的值逐一添入。将第一部分的每一个数字分别与第二部分比较,若结果偏小,则交换数字位置。

    import random
    random.seed(12)
    num = []
    for i in range(10):
        num.append(random.randint(1, 100))
    print('原始序列:', num)
    
    for j in range(1, len(num)):
        key = num[j]
        n = j - 1
        print('第一部分:', key, ' 第二部分:', num[:n+1])
        while n >= 0:
            if key < num[n]:
                num[n+1], num[n] = num[n], key
            n -= 1
    print('最终序列:', num)
    

    结果:
    原始序列: [61, 35, 85, 68, 86, 45, 19, 49, 2, 48]
    第一部分: 35 第二部分: [61]
    第一部分: 85 第二部分: [35, 61]
    第一部分: 68 第二部分: [35, 61, 85]
    第一部分: 86 第二部分: [35, 61, 68, 85]
    第一部分: 45 第二部分: [35, 61, 68, 85, 86]
    第一部分: 19 第二部分: [35, 45, 61, 68, 85, 86]
    第一部分: 49 第二部分: [19, 35, 45, 61, 68, 85, 86]
    第一部分: 2 第二部分: [19, 35, 45, 49, 61, 68, 85, 86]
    第一部分: 48 第二部分: [2, 19, 35, 45, 49, 61, 68, 85, 86]
    最终序列: [2, 19, 35, 45, 48, 49, 61, 68, 85, 86]

    2.冒泡排序
    思想:比较相邻元素,如果顺序错误则交换元素位置。

    def bubble_sort(num):
        for m in range(len(num)):
            for n in range(m+1, len(num)):
                if num[n] < num[m]:
                    num[m], num[n] = num[n], num[m]
        return num
    

    3.归并排序
    思想:

    相关文章

      网友评论

          本文标题:稳定排序方法

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