'''
lowB三人组      NB三人组      其他排序
冒泡            快排            希尔
选择            堆排            计数
插入            归并            基数'''# 冒泡排序
# 比较,交换
# 趟
# 最大进入有序区
# 时间复杂度:o(n2)
import randomdef bubble_sort(li):for i in range(len(li) - 1):  # 第i趟exchange = False  # 改进:# 如li= [9,8,7,1,2,3,4,5,6]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 = Trueif not exchange:returnli = [random.randint(0, 10000) for i in range(1000)]
print(bubble_sort(li))# 选择排序,不好的写法
def select_sort_simple(li):li_new = []for i in range(len(li)):min_val = min(li)  # O(n2)li_new.append(min_val)li.remove(min_val)  # O(n2)return li_new# 时间复杂度: o(n2)
# 注意有序区与无序区
def select_sort(li):for i in range(len(li) - 1):  # i 是第几趟min_loc = ifor j in range(i + 1, len(li)):if li[min_loc] > li[j]:min_loc = jli[i], li[min_loc] = li[min_loc], li[i]print(li)li = [3, 2, 1, 1, 4, 3, 5, 43, 3]
select_sort(li)
print('---------------->')# 插入排序
# 初始时有序区只有一张牌
# 时间复杂度 :o(1/2n2)
def insert_sort(li):for i in range(1, len(li)):  # i表示摸到的牌的下标temp = li[i]j = i - 1while j >= 0 and li[j] > temp:li[j + 1] = li[j]j -= 1li[j + 1] = tempprint(li)li = [3, 2, 1, 5, 4, 9, 7, 8, 6]
print(li)
insert_sort(li)

lowB三人组排序算法及其时间复杂度相关推荐

  1. 排序算法lowb三人组-插入排序

    排序算法lowb三人组-插入排序 def insert_sort(li):for i in range(1, len(li)): # i表示摸到的牌的下标tmp = li[i] # 摸到的牌j = i ...

  2. 面试前你必须知道的三个排序算法

    今天分享的是三种排序算法,在面试.实际编程中经常会碰到和使用到的,我会带领大家从分析排序算法技巧上以及代码实现上全面理解这一知识点的掌握. 一.如何分析一个「排序算法」 1. 执行效率 ① 最好.最坏 ...

  3. 常用的排序算法的时间复杂度和空间复杂度

    常用的排序算法的时间复杂度和空间复杂度                                           1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出 ...

  4. 常用的排序算法的时间复杂度和空间复杂度 .

    常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 ...

  5. 各种常用排序算法的时间复杂度和空间复杂度

    https://blog.csdn.net/jiajing_guo/article/details/69388331 一.常用排序算法的时间复杂度和空间复杂度表格 二.特点 1.归并排序: (1)n大 ...

  6. 【计算机基础】 经常使用的排序算法的时间复杂度和空间复杂度

    经常使用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 高速排序 O(n2) O(n*log2n) 不稳 ...

  7. 排序算法及其时间复杂度

    1. 排序算法时间复杂度 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面: 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面: 内排序:所有排序操作都在内存中完成: ...

  8. c语言验证完成排序算法的时间,排序算法的时间复杂度和空间复杂度

    常用的内部排序方法有:交换排序(冒泡排序.快速排序).选择排序(简单选择排序.堆排序).插入排序(直接插入排序.希尔排序).归并排序.基数排序(一关键字.多关键字). 一.冒泡排序: 1.基本思想: ...

  9. 各个排序算法及其时间复杂度

    各个排序算法及其时间复杂度 一.内部排序: 1.稳定的排序算法 1.1 冒泡排序 1.1.1 冒泡排序流程 1.1.2 冒泡排序的实现 1.2 插入排序 1.2.1 插入排序流程 1.2.2 插入排序 ...

  10. 常见的几种排序算法的时间复杂度

    一. 排序算法的介绍 概述:排序也称排序算法,排序是将一组数据,依指定的顺序进行排列的过程. 排序的分类 (1) 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序. (2) 外部排序:数据 ...

最新文章

  1. mysql autocommit 脚本_mysql autocommit的差异
  2. sqlserver阻止保存要求重新建立表的更改
  3. Guide To Using The Gnosis Multisig Wallet
  4. dsc linux 软件安装_linux – 安装dsc21时出错:“dsc21:取决于:cassandra(= 2.1.8),但要安装2.2.0”...
  5. 提问的智慧 如何得到好的帮助(转)
  6. 基于Docker的GoldenGate部署
  7. 前端学习(2841):UI开发思路--搭建架子
  8. uniapp 获取图片的高度_uni-app获取元素高度等信息,并设置元素top信息
  9. 关于ExtJs4的Grid带 查询 参数 分页(baseParams--extraParams)
  10. Emacs Lisp程序单步调试
  11. Java学习笔记(三):数组
  12. 【无标题】IDM + 油猴 + 百度云
  13. HeadFirstJava——十大遗珠之憾
  14. 简单网页制作html语言,用HTML语言制作简单的网页.doc
  15. c语言解除键盘锁定,笔记本键盘锁定,教您笔记本解除键盘锁定
  16. uml的九种图例分析
  17. 汉字与拼音互转的工具类
  18. 使用U3D给物体添加脚本时提示Can‘t add script component
  19. 部署-Mycat-Server-1.6.7.4安装与配置(CentOS 7.7)
  20. (2.1)关系模型之关系结构和约束

热门文章

  1. 太湖之光超级计算机诞生了,科技观察:神威·太湖之光超级计算机
  2. Android蓝牙4.0之传输速率的提升
  3. 基于知识图谱和图卷积神经网络的应用——学习笔记
  4. win10 windows 键(徽标键) 失效解决办法
  5. win10 小娜搜索没法用(语音能用 搜索框不能用)
  6. Python脚本实现淘宝秒杀
  7. 依图科技CTO颜水成被曝离职,或转战东南亚独角兽Shopee
  8. android:layout_height=match_parent和android:layout_marginTop=100dp同时作用
  9. CC00054.bigdatajava——|Java分支结构.V04|——|Java.v04|ifelse.v02|判断负数和非负数|
  10. 猴子排序 php,睡眠排序、面条排序、猴子排序...........................