zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    ZwQuerySystemInformation的用法
    将十进制整型数转成 2~36(不包含10) 进制数
    简化版C语言文法 130
    Python基础综合练习 130
    编译原理 130
    词法分析 130
    熟悉常用的Linux操作 130
    129有确定性的有穷自动机 130
    实验一.词法分析实验 130
    1.大 数据概述 130
  • 原文地址:https://www.cnblogs.com/zx576/p/7096619.html
Copyright © 2011-2022 走看看