内容正文:
小案例之冒泡排序法
Simple Easy Open Free Portable
1
什么是排序:
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
什么是排序算法:
就是如何使得记录按照要求排列的方法。
2
目录
contents
什么是冒泡排序
01
冒泡排序算法的原理☆
02
举个简单小例子
03
如何用代码实现△
04
3
PART
01
什么是冒泡排序
4
什么是冒泡排序:
这种排序算法的每一个元素都可以像小气泡一样,小(大)的元素经过不断的交换由水底慢慢的浮到水的顶端。
5
PART
02
冒泡排序算法的原理☆
6
冒泡排序算法的原理:
1) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2) 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的一对交换完后,结尾的元素应该会是本组数据中最大的数。
3) 针对所有的元素重复以上的步骤,除了最后一个。
4) 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
7
PART
03
举个简单的小例子
8
举个简单的小例子:
有5个数组成一个无序数列:5,8,6,3,9希望从小到大排序。按照冒泡排序的思想,我们要把相邻的元素两两比较,根据大小来交换元素的位置,具体如何来移动呢?
5
8
6
3
9
9
第一轮比较:(比较4次)
5
8
6
3
9
5与8作比较:
8与6作比较:
5
8
6
3
9
8与3作比较:
5
6
8
3
9
8与9作比较:
5
6
3
8
9
10
第二轮比较:(比较3次)
5与6作比较:
6与3作比较:
6与8作比较:
5
3
6
8
9
5
6
3
8
9
5
6
3
8
9
11
第三轮比较:(比较2次)
5与3作比较:
5与6作比较:
5
3
6
8
9
3
5
6
8
9
12
第四轮比较:(比较1次)
3与5作比较:
3
5
6
8
9
3
5
6
8
9
排序结束,最终结果:
13
PART
04
如何用代码实现?△
14
我们对数列2,8,36,9,10,18,15按照从小到大的顺序进行排序:
nums = [2,8,36,9,10,18,15]
for i in range(len(nums)-1):
for j in range(len(nums) - i -1):
if nums[j] > nums[j+1]:
nums[j],nums[j+1] = nums[j+1],nums[j]
print("从小到大排序后的结果是:"+str(nums))
15
程序说明:
从程序中我们可以看到,代码非常简单,使用循环的嵌套来实现排序。外部for循环控制比较几轮,注意:从上面的例子中我们可以看到5个数字排序,比较了4轮,所以外部循环次数是range(len(nums)-1);内部for循环控制每一轮中两两比较的次数,因为每轮两两比较完后,最大的数已经在最后方排好了,不用再参加下一轮两两元素的比较,所以内部循环次数是range(len(nums) - i -1),同时,如果左边的元素值大于右边的元素,则交换顺序。
16
运行结果:
17
1.冒泡排序算法的原理☆
2.如何用算法实现△
LOREM
本节小结
18
$$