• 插入排序-直接插入排序


    直接插入排序

    这个系列是回顾之前所学,是用python商量着完成的。

    路过的大佬就当看个乐,实现算法的方式不一,也有讨巧的做法。

    我只讲讲我的思路,希望大家浏览的时候能多多提建议,共同学习共同进步。

    --------------------------------------------------------------------------------------------------------

    基本思路:
    将待排序的序列看作两个部分,第一部分是已经排好序的部分,第二部分是暂时没有排序的部分。
    [3, 2, 1, 4, 5] ==>这里的3是第一部分,后面的都是待排序位置 ==> [3,   2, 1, 4, 5]
    现在要从第二部分中遍历出最小的数,所以这里有一层循环。
    将选择出来的最小数插入到第一部分,因为第一部分是已经排好的序列了,
    所以当前的最小值需要与第一部分的元素都比较一下,直到找到合适位置这里也需要一层循环。

    具体实现:

    def sorted_list(list):
        # 这里是第一层循环,下标是从1开始的
        for i in range(1, len(list)):
            # 这里是第二层循环,目的是让最小值去已经排好序的第一部分去一个个进行比较,因为交换了位置,值的下标也会发生改变,直到比较i = 0停止
            while i > 0:
                # 如果下标i的值小于i-1的值,他们之间就会交换位置
                if list[i] < list[i-1]:
                    list[i-1], list[i] = list[i], list[i-1]
                else:
                    # 如果不小于,那位置是不用变化的,直接break
                    break
                # 这也是为啥下标会减1
                i -= 1
        return list

    以上,接下来实现选择排序的直接选择排序

  • 相关阅读:
    Linux CAT与ECHO命令详解
    查看linux版本信息
    kubernetes(一)
    Chrome不安装插件实现页面长截图
    centos 升级glibc-2.17
    redis修改大key报Argument list too long的解决办法
    mysql打印用户权限的小技巧
    Centos6.5 自带的Python2.6.6 如何安装setuptools和pip
    TCP三次握手过程中涉及的队列知识的学习
    Docker volume权限导致的几个问题
  • 原文地址:https://www.cnblogs.com/PurpleRain98/p/13588561.html
Copyright © 2020-2023  润新知