【Day 22】阵列的应用-Bubble sort

有时候我们在写程序时,可能会需要对一组资料进行排序。而关於资料排序的演算法其实有很多种,这里我们先针对其中一个-Bubble sort 进行讨论。

Bubble sort

中文常翻成气泡排序法,高中老师和我们说,气泡排序法可以想像成海底有一只鱼,他如果吐了一个泡泡,那个泡泡会慢慢的浮出水面,而那个浮出水面的泡泡就是我们已排序好的资料(该次排序的最大值或最小值)。

假设现在我们有一组资料,里面含五笔数值需要做从小到大的排序,分别是 54、25、30、43、8。
我们会需要两个回圈,外层回圈用 i 控制,内层回圈用 j 控制。如果把排序一次画成图会长下面这样:

首先,我们要从 index 0(第一个数字)和 index 1(第二个数字)开始比较,因为我们现在是做递增排序,所以,如果 index 比较小的数值大於 index 较大的数值,就要做交换。做完一次排序後会发现,我们找出了最大值,且最大值会在 index 最大的地方。
然後再继续做第二次、第三次、第四次的排序,以获得整组资料的排序结果。


我们会发现,内层回圈执行的次数会因为已排序的数字变多而变少,而最外层须执行的次数是 N-1 次。(N 是排序的数值数量)

今天介绍了 Bubble sort,让我们来写一个小作业吧!

利用 Bubble sort,让使用者能够输入 10 个数字,输出由小到大的排序结果!


<<:  在HTML加入JavaScrip

>>:  【Day22】Git 版本控制 - 修改 commit 纪录:rebase

Leetcode: 1315. Sum of Nodes with Even-Valued Grandparent

题目: 思路: 呃,我知道要用DFS,但乍看题目看不懂什麽是even-value的意思,所以只好看H...

Day 15: GCP-Storage

Doc https://cloud.google.com/storage/docs/storage-...

自然而然的敏捷导入

前言 为什麽选在这个时候切入「敏捷」呢?在这之前我们谈论了「沟通」、「当责」与「透明」,这些都是展现...

Windows 10 KB5006670 更新导致电脑连接已安装的网络印表机,显示“0x00000709错误”

这几天公司连接网路印表机的电脑报出"0x00000709"无法使用错误 目前爬文...

【第23天】部署API服务-GCP架设VM(一)

【第23天】部署API服务-GCP架设VM(一) 摘要 作业流程 启用GCP服务 建立VM ssh连...