【2020-07-14】冒泡排序
算法核心思想:
无序序列,例使用冒泡排序算法实现由小到大的排序。
序列arr[n],从第一个元素开始,将arr[i]与arr[i+1]进行比较,若arr[i]>a[i+1]则将两对象的值进行交换,依次类推,遍历数组一轮后,数组中最大的元素,放在了最后;
继续循环剩下的n-1个排序,直到完成所有排序。
由于每次遍历后,最大的元素都被排序了出来,就像冒泡一样,故为冒泡排序。
算法结构:
两层for循环,外层循环控制循环轮数,内层循环进行具体比较。
for i in range(len(arr)) ——> 外层循环: 数组有多少个元素就循环多少次
for j in range(len(arr)-1-i) ——> 内层循环: 控制比较次数,len(arr)-1-i,由于每次遍历后最大的数已排到最后,无需再进行比较,故比较次数要-i。
代码实现:
def bubbleSort(arr):
for i in range(len(arr)):
for j in range(len(arr)-1-i):
if arr[j]>arr[j+1]:
arr[j],arr[j+1] = arr[j+1],arr[j]
return arr
#arr = [90,88,23,17,27,17,1,6,8,2,0]
#print(bubbleSort(arr))

浙公网安备 33010602011771号