【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))

 

posted @ 2020-07-14 16:55  七月泥  阅读(62)  评论(0)    收藏  举报