排序

冒泡排序 时间复杂度:O(n平方)

思路(降序,升序反过来就行)

一共进行n-1趟,每趟得到一个最小的
第一趟从第一个元素开始,到第n个元素结束,每个元素与其之后的元素进行比较,若比之后的元素小,则交换位置。结束后,第n个元素为最小
第二趟从第一个元素开始,到第n-1个元素结束,每个元素与其之后的元素进行比较,若比之后的元素小,则交换位置。结束后,第n-1个元素为最小
以此类推
第n-1趟从第一个元素开始,到第2个元素结束,两个元素比较大小。最终形成降序序列
####代码实现
每一趟结束我们输出一次列表

def bubble_sort(li):for i in range(len(li)-1):for j in range(len(li)-i-1):if li[j] < li[j+1]: #<降序>升序li[j], li[j+1] = li[j+1], li[j]print(li)li = [2,5,7,3,7,5,4,3,2]
print("原列表:",li)
bubble_sort(li)

改进

若一趟以后,所有元素位置均没发生改变,则可以结束循环。在上面图片中就可以看到后面几轮均未发生变化

    for i in range(len(li)-1):exchange = Falsefor j in range(len(li)-i-1):if li[j] < li[j+1]: #<降序>升序li[j], li[j+1] = li[j+1], li[j]exchange = Trueprint(li)if not exchange:return lili = [2,5,7,3,7,5,4,3,2]
print('原列表:',li)
print(bubble_sort2(li))


可见循环次数变少

插入排序 时间复杂度:O(n平方)

思路(升序,降序反过来就行)

一共进行n-1趟,每趟将无序区第一个放入有序区排序,从有序区最后一个元素开始比较,若比有序区最后一个元素小,则交换位置

代码实现

每一趟结束我们输出一次列表

def insert_sort(li):for i in range(1,len(li)):tmp = li[i]j = i - 1while j >= 0 and li[j] > tmp:li[j+1] = li[j]j = j - 1li[j+1] = tmpprint(li)return lili = [3,6,4,74,8,2,6,9,3]
print('原列表:',li)
print(insert_sort(li))

选择排序 时间复杂度:O(n平方)

思路(升序,降序反过来就行)

一共进行n-1趟,每趟首先找出无序区最小的元素,然后将其与无序区第一个元素交换
第一趟没有有序区,然后找出第所有元素中最小的元素,然后将其与无序区第一个元素(即第一个元素)交换
第二趟有序区为第一个元素,然后找出第2到n元素中最小的元素,然后将其与无序区第一个元素(即第二个元素)交换
以此类推
第n-1趟有序区为第1到n-2元素,然后找出第n-1到n元素中最小的元素,然后将其与无序区第一个元素(即第n-1个元素)交换

代码实现

def select_sort(li):for i in range(len(li)-1):min_loc = ifor j in range(i+1,len(li)):if li[j] < li[min_loc]:min_loc = jli[i],li[min_loc] = li[min_loc],li[i]print(li)return lili2 = [3,6,1,5,8,9,4]
print('原列表:',li2)
select_sort(li2)

排序之low逼三人组及其python代码实现相关推荐

  1. low逼三人组、nb二人组、归并、希尔排序----小结

    转载于:https://www.cnblogs.com/zhuifeng-mayi/p/9218083.html

  2. 排序算法之low B三人组

    排序算法之low B三人组 排序low B三人组 列表排序:将无序列表变成有充列表 应用场景:各种榜单,各种表格,给二分法排序使用,给其他算法使用 输入无序列表,输出有序列表(升序或降序) 排序low ...

  3. 三百行python代码的项目_300行Python代码打造实用接口测试框架

    在刚开始实现ApiTestEngine的时候,卡斯(kasi)提议做一个Java版的.对于这样的建议,我当然是拒绝的,瞬即回复了他,"人生苦短,回头是岸啊". 当然,我没好意思跟他 ...

  4. 牛逼,两百行Python代码带你打造一款《天天酷跑》游戏!

    公众号关注 "菜鸟学Python" 第431篇原创,设为 "星标",带你一起学编程! 最近一段时间,小编发现已经好久没有给大家带来趣味游戏的案例展示了.刚好小编 ...

  5. Mongdb篇三。 用Python代码实现Mongdb数据库的增删查改、集合管道示例,超详细,全部用实例print大法演示功能通俗易懂。学pymongo库看一篇就够

    ⭐ 简介:大家好,我是zy阿二,我是一名对知识充满渴望的自由职业者. ☘️ 最近我沉溺于Python的学习中.你所看到的是我的学习笔记. ❤️ 如果对你有帮助,请关注我,让我们共同进步.有不足之处请留 ...

  6. 插入排序、选择排序、快速排序以及归并排序(附Python代码)

    排序算法基本原理以及复杂度等知识点可跳转至该博客了解https://www.cnblogs.com/onepixel/p/7674659.html ,本博客主要对排序算法性能进行对比以及记录对比过程发 ...

  7. 三百行python代码的项目_使用300行代码创建一个分布式系统

    使用 300 行代码创建一个分布式系统 构建一个分布式系统是很困难的. 它需要可扩展性. 容错性. 高可用性. 一致性. 可伸缩以及高效.为了达到这些目的,分布式系统需要很多复杂的组件以一 种 复杂的 ...

  8. python实现局域网攻击_牛逼了!一行Python代码搭建一个局域网服务器

    不知道大家有没有遇到过这样的情况, 在做项目或者研发的时候,迫切想要将一个文件传输给另一台电脑,却找不到U盘,于是麻烦的通过登陆qq.微信等社交软件 ,或者邮箱等工具进行传输,十分麻烦,让人苦恼. 都 ...

  9. Python代码统计工具

    目录 Python代码统计工具 声明 一. 问题提出 二. 代码实现 三. 效果验证 Python代码统计工具 标签: Python 代码统计 声明 本文将对<Python实现C代码统计工具(一 ...

  10. 在树莓派里面运行python代码_树莓派如何运行python程序

    树莓派如何运行python程序 发布时间:2020-09-23 12:03:39 来源:亿速云 阅读:128 作者:小新 这篇文章主要介绍了树莓派如何运行python程序,具有一定借鉴价值,需要的朋友 ...

最新文章

  1. vector,数组,动态数组效率测试
  2. 【每日一算法】两数相加
  3. 【转】局域网内访问VS2012 调试的IIS Express web服务器
  4. 在Centos7安装mysql
  5. 一个设计反模式——究竟什么是轮子理论
  6. 2016中国APP分类排行榜发布暨颁奖晚宴 —— 兰亭修禊少长有王谢 黔香阁暖高见望诸公...
  7. JavaFX UI控件教程(二十七)之File Chooser
  8. iphone最新款手机_iPhone 丢了99.9%能找回?这种做法不可信!!
  9. Spring入门(1)
  10. python 多线程笔记(2)-- 锁
  11. SQL中CONVERT转化函数的用法(转)
  12. JDK1.8官网下载安装以及配置环境变量教程(官网)
  13. $(origin variable;)
  14. vant van-calendar日历组件默认选中明天而且只能选择明天
  15. 使用STM32CubeMX 快速生成 USB HID 工程 - STM32F107VCT6
  16. linux迁移系统失败,Windows到Linux系统代码移植遇到的问题
  17. C#.NET 窗体停靠控件WeifenLuo.WinFormsUI.Docking.dll的使用
  18. 【CSDN】创作区上传图片-粘贴/文件上传失败解决!
  19. js px转rem,简单版,注意不能修改ui框架的px
  20. 如何在idea上运行eclips项目。

热门文章

  1. Kent Beck 教你编程模式与代码重构
  2. Redhat认证体系
  3. 使用webpack打包nodejs 后台端环境|NodeJs 打包后台代码
  4. 在Microsoft Server Management Studio中用T-SQL语句创建数据库和工作表
  5. CentOS6 双线双ip服务器路由设置方法
  6. Android批量打包-如何一秒内打几十个apk渠道包
  7. 如何维持手机电池寿命_教你一招,可以让你的手机电池容量长期维持在峰值,延长电池寿命...
  8. Python jiba 分词
  9. rust+mysql+prep+exec_Rust + Flutter 高性能的跨端尝试
  10. 孪生再世代表数字几_正文 第六百一十七章 原来是孪生姐妹?