冒泡排序的时间复杂度是O(n^2),选择排序的时间复杂度也是O(n^2),这是因为这两种排序算法的元素比较次数是相同的。但因为冒泡排序是每比较一次,就会交换一次,而选择排序是每一轮循环结束后才进行一次交换。所以,选择排序要相对速度更快一些。

冒泡排序

def bubbleSort(nums):

for i in range(0, len(nums)):

for j in range(0, (len(nums) - 1 - i)):

if nums[j] > nums[j+1]:

temp = nums[j]

nums[j] = nums[j+1]

nums[j+1] = temp

return nums

选择排序

def selectSort(nums):

for i in range(len(nums) - 1, 0, -1):

maxIndex = 0

for j in range(1, i + 1):

if nums[j] > nums[maxIndex]:

maxIndex = j

temp = nums[i]

nums[i] = nums[maxIndex]

nums[maxIndex] = temp

return nums

快速排序

def quickSort(nums, left, right):

i = left

j = right

base = nums[left]

if i < j:

return nums

while i != j:

while nums[j] >= base and i < j:

j = j - 1

while nums[i] <= base and i < j:

i = i + 1

if i < j:

temp = nums[i]

nums[i] = nums[j]

nums[j] = temp

nums[left] = nums[i]

nums[i] = base

quickSort(nums, left, i-1)

quickSort(nums, i+1, right)

return nums

调用

nums = [23, 18, 232, 10, 5, 88, 34, 11, 9]

newNums1 = bubbleSort(nums)

newNums2 = selectSort(nums)

newNums3 = quickSort(nums, 0, len(nums) - 1)

print(newNums1)

print(newNums2)

print(newNums3)

打印结果

[5, 9, 10, 11, 18, 23, 34, 88, 232]

[5, 9, 10, 11, 18, 23, 34, 88, 232]

[5, 9, 10, 11, 18, 23, 34, 88, 232]

Have fun.

python3写冒泡排序_使用python3实现冒泡排序、选择排序和快速排序相关推荐

  1. 【C语言冒泡排序、选择排序和快速排序】

    文章目录 前言 一.冒泡排序 二.选择排序 三. 快速排序 四.代码设计与实现 代码设计 代码实现 调试结果 冒泡排序改良 延伸思考 总结 前言 本文简单介绍了C语言的冒泡排序.选择排序.快速排序,结 ...

  2. 掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等)...

    掌握常见的内部排序方法(插入排序,冒泡排序,选择排序,快速排序,堆排序,希尔排序,归并排序,基数排序等). 数组高级以及Arrays(掌握) 排序方法 空间复杂度 时间复杂度 稳定性 插 入 排 序 ...

  3. python3抓取图片_通过Python3 爬虫抓取漫画图片

    引言: 最近闲来无事所以想着学习下python3,看了好长时间的文档,于是用python3写了一个漫画抓取的程序,好了 废话不多说上码! 第一步: 准备环境 和类库,我用的是python3.5    ...

  4. python3 range函数_为什么python3中的xrange函数不能用

    升级到python3的同学应该会注意到以前经常用的xrange没了! 是的,python3的range就是xrange.直接看效果!Python 2.7.13 (v2.7.13:a06454b1afa ...

  5. python3文件处理_简述 Python3 文件处理

    1.文件处理 找到文件 --> 打开文件 --> 操作:读.写 --> 保存 --> 关闭 1.1.1 写文件 (只要牵扯到文件操作,都是字符串:写文件的时候需要把写的数字转换 ...

  6. JAVA最常用的排序_冒泡排序、选择排序、快速排序

    排序算法是Java面试题中最常考的,笔试题.机试题都会有,所有掌握最常用的排序是必须. 在效率中快速排序是这几种效率最高的. 代码验证过,可以直接复制测试运行. 代码如下: package com.l ...

  7. JS-排序详解:冒泡排序、选择排序和快速排序

    JS-排序详解-冒泡排序 说明 时间复杂度指的是一个算法执行所耗费的时间 空间复杂度指运行完一个程序所需内存的大小 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面 不稳定指,如果a=b,a在 ...

  8. 关于js数组的六种算法---水桶排序,冒泡排序,选择排序,快速排序,插入排序,希尔排序的理解。...

    1.水桶排序: 原理:首先找到arr这个数组中的最大项 max(此处为88),然后创建一个新的数组bucket,bucket数组长度为max,然后for循环遍历,在bucket的索引为arr[i]的添 ...

  9. Lua语言实现7种排序(冒泡排序,插入排序,选择排序,快速排序,归并排序,堆排序)

    冒泡排序 function BubbleSort(arr)local len = #arr;for i = 1,len dofor j = 1,len-i doif (a[j] < a[j+1] ...

最新文章

  1. JBoss日志文件配置
  2. 使用SQL Server 发送邮件
  3. centos who命令 查看当前登录系统用户信息
  4. 创建链表和遍历链表算法演示
  5. rsync替换cp命令显示速度和进度
  6. 2020 有哪些不容错过的前端技术趋势? | 凌云时刻
  7. 计划学Linux,老男孩Linux怎么样?真实的学员评价!
  8. 静态代码分析工具大全
  9. 驰骋计算产业数十年的Wintel联盟开始分崩离析
  10. 从病毒开始聊聊那些windows下大杂烩
  11. 关于文献HEVC-The New Glod Standard For Video Compress的理解
  12. 网络攻防环境的搭建--MacOs配置Vmnet1及Vmnet8
  13. jar包部署到Linux服务器
  14. 规则网络上的演化博弈
  15. 碳中和丨InVEST模型高级进阶及在生态系统服务供需、碳中和等领域中的具体应用
  16. 简单的有限元分析(python)
  17. 关于windows无法登录微软账号一直转圈的问题解决办法
  18. 单片机、嵌入式Linux开发大学自学路径
  19. Linux下IIC子系统和触摸屏驱动
  20. 2022阿里云栖大会,顶尖科技趋势峰会和全链路元宇宙体验

热门文章

  1. java小编程----电话号码组合
  2. 左神算法:判断 t1 树中是否有与 t2 树拓扑结构完全相同的子树(Java版)
  3. 自定义parallelStream的thread pool
  4. HiveJDBC与其他JDBC一起使用时出现java.lang.IllegalArgumentException: Bad URL format
  5. redis5种数据结构讲解及使用场景
  6. Spring Boot + Mybatis多数据源和动态数据源配置
  7. 扩展内容(进程的通信方式)
  8. 算法训练营09-深度优先和广度优先
  9. [leetcode]101.对称二叉树
  10. k8s问题 CrashLoopBackOff