最近准备去找工作,时隔几年又要把在学校时代压床底的算法掏出来吹吹灰尘了,真有种朝花夕拾的感觉…哈哈哈哈
毕竟如果面试要是写不出来,那真是太尴尬了。
写那么一波冒泡排序找找感觉2333

运行环境 Runtime environment

1
2
3
操作系统: Windos10  
IDE: JetBrains Python 2018.2.4 x64
语言: Python 3.66

背景

听名字就很萌的算法,也是比较简单的一种。
好像是大学最先接触的算法?
我已经记不真切了又好像选择排序才是第一个学..
总之要用到的啦。

冒泡排序

1
2
3
4
5
def bubble_sort(nums):
for i in range(len(nums)): # 找出一个数
for j in range(len(nums)-i-1): # 找出这个数相邻的下一个数
if nums[j+1] > nums[j]: # 比较相邻的两个数谁大
nums[j+1], nums[j] = nums[j], nums[j+1] # 如果后一个数比前一个数大,他们对调位置

总结

  1. 从第一个开始每次都比较相邻的两个数,如果发现顺序不对,就把两个数交换一下,直到最后一个。这个时候,最大的数自然而然就跑到最后一位上面去了。

  2. 第二次的时候,也从第一个开始,不过只需要循环到n-2处就行了(因为n-1处经过第一次洗礼已经时最大了嘛。)

  3. 依此类推,循环n次,整个数组就会变成有序的了。