02 冒泡排序

news/2024/10/6 8:22:01

1.冒泡排序的含义

  • 每次交换两个,把大的扔在末尾,
  • 每一轮可以确定末尾是最大的,然后是次尾部,依次进行下去。
  • 老师:每次都是搞定最大的数,最大的数往右边冒。再接着搞定下一轮,直到整个数组有序。
  • 图示:

2.示例代码

def bubble_sort(arr):# if not arr or len(arr) < 2:#     returnn = len(arr)# 0 ~ end# 0 ~ end-1# 0 ~ end-2# ...# 0 ~ 0for end in range(n - 1, 0, -1): # 倒着取,末尾n-1开始,取到0# 0 1  i==0 1# 1 2  i==1 2# 2 3  i==2 3# end-1 end  i==end-1for i in range(end): # i=0~end-1    # python默认不取尾if arr[i] > arr[i + 1]: # 左侧大,要冒到右侧去,此时交换arr[i], arr[i + 1] = arr[i + 1], arr[i]# 示例使用
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("Sorted array is:", arr)

3.练习代码

def bubble_sort(arr):n = len(arr)for end in range(n - 1, 0, -1):  # 0~end--for i in range(end):  # 0~end-1if arr[i] > arr[i + 1]:arr[i], arr[i + 1] = arr[i + 1], arr[i]return arrnums = [5, 4, 2, 3, 1]
print(bubble_sort(nums))

4.截图

5.感悟

  • 轻轻松松
  • 记忆点end,的范围是end--
  • i的范围是0~end-1

6.代码思路

  • end--
  • i的范围是0~end-1,每次比较i和i+1

7.参考文献

https://www.runoob.com/w3cnote/bubble-sort.html

https://www.bilibili.com/video/BV12P41147to/?spm_id_from=333.999.0.0&vd_source=6176e79b66461eb74da787cb8321925b

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28505.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

一站式生活新体验:可视化技术让公寓商场综合楼焕新生

可视化技术将传统的居住与购物空间进行了完美融合。在这里,你不再需要为了购买生活用品而特地跑到远处的商场,也不再需要为了找一家心仪的餐厅而四处奔波。通过可视化技术,你可以轻松查看到楼内的各个商铺、餐厅、健身房等配套设施的分布情况,一键导航直达目的地,享受一站…

MySQL-基础语法教程及事务和索引

基础解析: select 要几列 where要几行,用来对行进行过滤,加where,查出来的行变少 *代表所有的列 增删改查UPDATE SET 更新 UPDATE scores SET score=300 WHERE NAME="王大" AND kemu="语文" delete语法 DELETE FROM scores WHERE ID =11#删除整张表里的…

MySQL-基础语法教程

基础解析: select 要几列 where要几行,用来对行进行过滤,加where,查出来的行变少 *代表所有的列 增删改查UPDATE SET 更新 UPDATE scores SET score=300 WHERE NAME="王大" AND kemu="语文" delete语法 DELETE FROM scores WHERE ID =11#删除整张表里的…

WinForm下实现子窗体

如果想要实现在同一个Form下的子窗体切换,下面的方法可以实现。窗体设计,如图增加子窗体。鼠标右键项目,选择添加,选择用户控件注意修改用户控件的大小尺寸,和GroupBox的尺寸匹配。建立好子窗体后,在主Form里面先声明各个子窗体类,如下://定义用户窗口变量public windo…

c# 多线程的几种方式 【转载】

1.什么是线程? 进程作为操作系统执行程序的基本单位,拥有应用程序的资源,进程包含线程,进程的资源被线程共享,线程不拥有资源。2.前台线程和后台线程的区别? 程序关闭时,后台线程直接关闭,但前台线程会执行完后关闭。 通过Thread类新建线程默认为前台线程。其他方式创建…

01选择排序

01选择排序 1.选择排序含义每次选择最小的,放到左侧。持续进行。2.示例代码: def selectionSort(arr):for i in range(len(arr) - 1):# 记录最小数的索引minIndex = ifor j in range(i + 1, len(arr)):if arr[j] < arr[minIndex]:minIndex = j# i 不是最小数时,将 i 和最…

Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器

Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器 利用尖端的人工智能生成技术,轻松增强照片效果 请访问原文链接:Luminar Neo 1.19.0 (macOS Universal) - 创新 AI 图像编辑器,查看最新版。原创作品,…

Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:Burp Suite Professional 2024.4 for Windows x64 - 领先的 Web 渗…