一、冒泡排序
1、思路:首先,列表每两个相邻的数比较大小,如果前边的比后边的大,那么这两个数就互换位置。就像是冒泡一样
2、代码关键点:
- 趟数:n-1趟
- 无序区
3、图示说明:依次类推就会得到排序结果。冒泡排序的效率还是很低的
4、代码示例
# 思路:列表中两个相邻的数比较大小,如果前边的比后边的大,那么这两个就互换位置 def bubblr_sort(li): for i in range(1,len(li)-1):#表示趟数 change = False for j in range(len(li)-i): #表示无序区,无序区的范围为0,len(li)-i if li[j] > li[j+1]: li[j],li[j+1] = li[j+1],li[j] change = True if not change: return li = list(range(10)) import random random.shuffle(li) print(li) bubblr_sort(li) print(li) def bubblr_sort(li,reverse=False): for i in range(1,len(li)-1):#表示趟数 change = False for j in range(len(li)-i): #表示无序区,无序区的范围为0,len(li)-i if not reverse: # 从小到大排序 if li[j] > li[j+1]: li[j],li[j+1] = li[j+1],li[j] change = True else: # 从大到小排序 if li[j] < li[j+1]: li[j],li[j+1] = li[j+1],li[j] change = True if not change: return li = list(range(10)) import random random.shuffle(li) print(li) bubblr_sort(li,True) print(li)