‘’’

常见排序算法:

1.low B 三人组 : 冒泡、选择、插入

def bubble(li):for i in range(len(li)-1):flag = Falsefor j in range(len(i)-i-1)if li[j]>li[j+1]:li[j],li[j+1] = li[j+!],li[j]flag = Trueprint(li)if not flag:returndef select(li):for i in range(len(li)-1):min = ifor j in range(i+1,len(li)-1):if li[j]< li[min]min = jli[min],li[j] = li[min],li[j]

2.N b 三人组 : 快速、堆、归并

3.其他 : 希尔、计数、基数

‘’’

#1 2 5 3 3 2 4

Bubble sort 冒泡排序 :

关键点:趟数,无序区范围 O(n方)

import random
from cal_time import *
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 = [random.randint(0,10000) for i in range(10)] # print(li) # print('—'*100)#bubble_sort(li)@cal_time
def better_bubble_sort(li):for i in range(len(li)-1):flag = 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]flag = True#如果发生交换,则置1#print(li)if not flag:#如果这一趟没有交换,则跳出循环return

测试冒泡排序算法运算效率

li = list(range(10000))
random.shuffle(li)
better_bubble_sort(li)

————————————————————————

粗糙选择排序

def select_sort_simple(li):li_new = []for i in range(len(li)): #O(n)min_val = min(li) # O(n)li_new.append(min_val)li.remove(min_val) #O(n)return  li_new

选择排序算法关键点:

有序区和无序区,无序区最小数的位置

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)
li = [3,2,44,52,215,3,6,7]
#print(select_sort_simple(li))
select_sort(li)

————————————————————————

插入排序

# 1 3 5 6 4 7 9#插入排序 O(n方)
def insert_sort(li):for i in range(1,len(li)): #i表示摸到的牌的下标tmp = li[i]j = i - 1 #j 指的是手里的牌的下标while j >= 0 and li[j] >tmp:li[j+1] = li[j]#手里J 的牌大于摸到的牌,右移j -= 1 #往前继续找li[j+1] = tmpprint(li)
li = [1,3 ,5, 6, 4, 7, 9]
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. java 实现 常见排序算法(三)快速排序

    大家好,我是烤鸭: 今天分享一下基础排序算法之快速排序.快速排序是内部排序(基于比较排序)中最好的比较算法. 1.     快速排序: 原理:在要排的数(比如数组A)中选择一个中心值key(比如A[0 ...

  3. 数据结构值排序算法(三)-快速排序

    基本思想: 快速排序采用的思想是分治思想. 第一趟排序:快速排序是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 ...

  4. 算法-lowb三人组

    ---恢复内容开始--- d定义: pandas是一个强大的Python数据分析的工具包. pandas是基于NumPy构建的. 安装方法: pip install pandas import pan ...

  5. 希尔排序的详细过程_算法系列: 10大常见排序算法(4)希尔排序

    本课程是从少年编程网转载的课程,目标是向中学生详细介绍计算机比赛涉及的编程语言,数据结构和算法.编程学习最好使用计算机,请登陆 www.3dian14.org (免费注册,免费学习). 一句 希尔排序 ...

  6. 十种常见排序算法欢聚一堂

    文章目录 1.常见排序算法分类 2.非线性时间比较类排序 2.1 交换类排序 2.1.1 冒泡排序 2.1.2 快速排序 2.2 插入类排序 2.2.1 直接插入排序 2.2.2 Shell 排序 2 ...

  7. C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划

    C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划 博文末尾支持二维码赞赏哦 _ github 章3 Stack栈 和 队列Queue= ...

  8. 常见排序算法的时间复杂度、空间复杂度、稳定性比较

    常见排序算法的时间空间复杂度.稳定性比较 一.排序算法比较 注: 1.归并排序可以通过手摇算法将空间复杂度降到O(1),但是时间复杂度会提高. 2. 基数排序时间复杂度为O(N*M),其中N为数据个数 ...

  9. js实现常见排序算法

    文章目录 前言 一.排序相关概念 1.比较排序和非比较排序 比较排序 非比较排序 2.稳定性和不稳定性 二.各排序算法对比 三.排序算法中的通用函数以及对数器 1.通用函数 交换函数 取两索引的中间下 ...

  10. 【十种常见排序算法】

    十种常见排序算法可以分为两大类: 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序:不通过比较来决定元素间的相对次序 ...

最新文章

  1. 控制语句 for while if switch
  2. Vue2.x开发饿了么项目(header部分)
  3. 前端总线,外频及单位GT/s,MHz区别
  4. 打算把我的视频工具整合一下
  5. 框架:DAO,Service,Controller,View层之间的逻辑关系
  6. jboss4 java_带有JBoss工具的OpenShift 3上的Java EE 7应用程序
  7. Linux 命令简单介绍第一课笔记
  8. 【直播回顾】阿里高级开发工程师紫思:闲鱼多业务隔离框架SWAK...
  9. cip协议服务器,控制及信息协议(CIP)
  10. 设计模式(四):模板方法模式、迭代器和组合模式、状态模式
  11. c语言小球消砖块的游戏,求大神帮忙看看这个弹弹球消砖块的游戏代码,为什么speed只能15...
  12. 省市区三级联动area
  13. vue开发h5 公众号
  14. UOJ #455.【UER #8】雪灾与外卖 堆模拟费用流
  15. 川崎机器人 AS语言基础运动指令表
  16. steam_api64.dll丢失的解决方法
  17. maven 3.8.1 安装及配置文件setting.xml
  18. 模拟电路软件oracle,电子商务模拟教学平台
  19. 项目干系人是什么?如何有效管理项目干系人?
  20. python----将当前目录的所有扩展名为“html”的文件修改为扩展名为“htm”的文件。

热门文章

  1. 2018-8-10-win10-uwp-使用资源在后台创建控件
  2. 浏览器页面录制及转视频方案
  3. java pdf 使用itextpdf插入页码
  4. WESHOP | 基于微服务的小程序商城系统
  5. HiveSql常用的时间维度计算方法(月初、月末、周几)及时间维度 表生成
  6. 立陶宛央行抢跑数字货币背后:前瞻的区块链战略 中国已有企业布局
  7. 三维动画制作参考文献推荐汇总
  8. 关于2022年国外广告联盟emu还能做吗?还赚钱不
  9. WINDOWS SERVER 2016 设置使用照片查看器查看图片
  10. Red Hat 9.0 安装配置 zz