冒泡,快排,堆排序
#!/usr/bin/env python # _*_ coding:utf-8 _*_ __author__ = "ligq" import time import random import copy import sys def cal_time(func): def wrapper(*args, **kwargs): t1 = time.time() result = func(*args, **kwargs) t2 = time.time() print("%s running time: %s secs." % (func.__name__, t2 - t1)) return result return wrapper #构造堆 def sift(data,low ,high): i = low j = 2 * i + 1 tmp = data[i] while j <= high: if j+1 <= high and data[j] < data[j +1]: j += 1 if data[j] >tmp: data[i] = data[j] i = j j = 2*i+1 else: break data[i]=tmp #堆排序 @cal_time def heap_sort(data): n = len(data) for i in range (n // 2 -1,-1,-1): sift(data,i ,i -1) for i in range(n-1,-1,-1): data[0],data[i] = data[i],data[0] sift(data,0,i-1) #冒泡排序 @cal_time def bubble_sort(data): for i in range(len(li)-1): exchange = 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] exchange =True if not exchange: break li = list(range(100)) # random.shuffle(li) print(li) bubble_sort(li) print(li) # random.shuffle(li) print(li) heap_sort(li) print(li)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理