当前位置: 首页 > news >正文

排序算法(一):冒泡排序

冒泡排序是原址排序,时间复杂度在n~n^2之间。最好的情况是数组本身就是序,并且是满足排序需求的,这时只要n次循环就可以。最坏的情况的,数组本身的顺序和需要的顺序是相反的。
冒泡排序的思路是:两两对比,交换位置,第一次循环把最大的或者是最小的那个放在最后,经过n次循环,把数字放在对应的位置上。
在这里插入图片描述
代码实现:

import time
from functools import wrapsdef count_execute_time(func):@wraps(func)def wrapper(*args, **kwargs):start = time.time()result = func(*args, **kwargs)print(f"{func.__name__} cost {time.time() - start}")print(f"{func.__name__} result: {result}\n")return resultreturn wrapper@count_execute_time
def maopao_asc_sort(data):"""冒泡生序排序"""count_ = 0for i in range(len(data)):for j in range(len(data)-1):if data[j] > data[j+1]:data[j], data[j+1] = data[j+1], data[j]count_ += 1return data, count_@count_execute_time
def maopao_desc_sort(data):"""冒泡降序"""count = 0for i in range(len(data)):for j in range(len(data)-1):if data[j] < data[j+1]:data[j], data[j+1] = data[j+1], data[j]count += 1return data, count
http://www.lryc.cn/news/585081.html

相关文章:

  • 没有Mac如何完成iOS 上架:iOS App 上架App Store流程
  • python的社区残障人士服务系统
  • PC网站和uniapp安卓APP、H5接入支付宝支付
  • 通过命名空间引用了 Application 类,php不会自动包含路径文件吗?
  • Android原生TabLayout使用技巧
  • 没有管理员权限,在服务器安装使用 Jupyter + R 内核
  • springboot生成pdf方案之dot/html/图片转pdf三种方式
  • 深度学习入门教程(三)- 线性代数教程
  • SQL:数据库查询语言的核心技术
  • 语音对话秒译 + 视频悬浮字 + 相机即拍即译:ViiTor 如何破局跨语言场景?
  • FPGA实现SDI转LVDS视频发送,基于GTP+OSERDES2原语架构,提供工程源码和技术支持
  • 每日一SQL 【游戏玩法分析 IV】
  • 物联网应用开发技术趋势与实践指南
  • 华为数据通信网络基础
  • 《Java EE与中间件》实验三 基于Spring Boot框架的购物车
  • 搭建渗透测试环境
  • 每天一个前端小知识 Day 28 - Web Workers / 多线程模型在前端中的应用实践
  • Java Stream流介绍及使用指南
  • 冒泡排序和快速排序
  • 嵌入式C语言-define和const区别
  • 炎热工厂救援:算法打造安全壁垒
  • 【实时Linux实战系列】现有应用迁移到实时环境的步骤
  • 零信任落地难题:安全性与用户体验如何两全?
  • G1 垃圾回收算法详解
  • 类之间的纵向关系——继承
  • rom定制系列------红米note10 5G版camellia原生安卓14批量线刷 miui安卓11修改型号root版
  • bash中||与的区别
  • consul 的安装与服务发现
  • Python PDFplumber详解:从入门到精通的PDF处理指南
  • Java 深入解析:JVM对象创建与内存机制全景图