lowB三人组代码示例

复制代码
冒泡排序:列表在内存重只存一份,所以不需要重复赋值
import random
from timewrap import *          #时间装饰器

# 初级版本 @cal_time
def bubble_sort(li): for i in range(len(li)-1): #循环的躺数为总的躺数-1,因为最后一步没必要走 # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) for j in range(len(li) - i - 1): #循环i次之后就还有总长度-1-i次 if li[j] > li[j+1]: #如果低j个数比j+1个数还要大,说明j在j+1的上边 li[j], li[j+1] = li[j+1], li[j] #交换位置
# 优化版,和上边的基本一样,只是在他的基础上增加了一层判断,如果刚刚开始列表就是有序的则不需要进行排序 @cal_time
def bubble_sort_2(li): for i in range(len(li)-1): # i 表示趟数 # 第 i 趟时: 无序区:(0,len(li) - i) change = False for j in range(len(li) - i - 1): if li[j] > li[j+1]: li[j], li[j+1] = li[j+1], li[j] change = True #排序成功返回True if not change: #如果没有change的值代表没有排序, return li = list(range(10000)) #随机产生10000个数 # random.shuffle(li) #打乱后的结果 # print(li) bubble_sort_2(li) #没有打乱排序,直接走if not change: print(li)
复制代码
复制代码
#选择排序
import random
from timewrap import *         #时间装饰器,用来判断函数执行的时间长度

@cal_time
def select_sort(li):
    for i in range(len(li)-1):
        # i 表示趟数,也表示无序区开始的位置
        min_loc = i   # 最小数的位置          的到一个最小值
        for j in range(i+1, len(li)):   #此时i就是最小值
            if li[j] < li[min_loc]:           #如果li[j]<li[min_loc]   说明j就是最小值
                min_loc = j
        li[i], li[min_loc] = li[min_loc], li[i]       #交换位置,最小值放在前边


li = list(range(10000))    #随机产生1000个数字
random.shuffle(li)         #打乱
print(li)
select_sort(li)            #调用函数,排序
print(li)
复制代码
复制代码
#插入排序
import random
from timewrap import *

@cal_time
def insert_sort(li):
    for i in range(1, len(li)):
        # i 表示无序区第一个数
        tmp = li[i] # 摸到的牌                 随机去到一支歌
        j = i - 1 # j 指向有序区最后位置
        while li[j] > tmp and j >= 0:        # 有序区最下的值
            #循环终止条件: 1. li[j] <= tmp; 2. j == -1
            li[j+1] = li[j]
            j -= 1
        li[j+1] = tmp


li = list(range(10000))
random.shuffle(li)
print(li)
insert_sort(li)
print(li)
复制代码

 

posted @   一石数字欠我15w!!!  阅读(249)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示