• Python排序算法冒泡排序选择排序插入排序


    冒泡排序

    冒泡排序的核心在于每次将数组中的最值往末尾移动。
    使用的方法可称为 相邻项依次比较,根据结果决定是否换位。
    时间复杂度 O(n^2),优点在于理解起来简单,代码行数少,缺点是用时相对久

    def bubble(lst):
    
        n = len(lst)
        # 第一层 for 循环
        for i in range(n):
            for j in range(n-1-i):
                if lst[j] > lst[j+1]:
                    lst[j],lst[j+1] = lst[j+1],lst[j]
    
        return lst
    
    
    选择排序

    选择排序的核心在于依次找到最值从小到大(从大到小)排列。比如你有一把手牌,每次都出最小的,最后的出牌顺序就为从小到大。

    
    def section(lst):
    
        n = len(lst)
        for i in range(n-1):
            small = i
            # 寻找最小的值
            for j in range(i+1, n):
                if lst[j] < lst[small]:
    	            # 不断找到最小,返回下标
                    small = j
    		# 交换位置
            lst[i], lst[small] = lst[small], lst[i]
    
        return lst
        
    

    插入排序

    插入排序,从头到尾一个对象一个对象的排序,斗地主发牌后,从左到右一张一张将牌按顺序排列。

    def insertion(lst):
        n = len(lst)
        for i in range(1, n):
            pos = i
            # 换牌条件
            while pos>0 and lst[pos]<lst[pos-1]:
                lst[pos],lst[pos-1] = lst[pos-1],lst[pos]
                pos -= 1
    
        return lst
    
  • 相关阅读:
    Shell工具——cut、sed、awk、sort
    基于RocketMQ分布式事务实现
    Alpine Linux 包管理工具
    分布式事务之可靠消息最终一致性
    消息系统本质思考
    深入剖析Redis数据结构
    Feign原理深入剖析
    Shell中 /dev/null用法解析
    Lua 数据类型与变量
    分布式事务之Seata开源方案
  • 原文地址:https://www.cnblogs.com/zx576/p/7096619.html
Copyright © 2020-2023  润新知