冒泡排序概念
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历待排序的元素列表,比较相邻的两个元素,并按照顺序交换它们,直到整个列表排序完成。
冒泡排序的基本思想是:通过不断交换相邻元素的位置,将最大(或最小)的元素逐渐移动到列表的末尾。具体步骤如下:
1. 从列表的第一个元素开始,依次比较相邻的两个元素。
2. 如果前一个元素大于后一个元素,则交换它们的位置,使得较大的元素向后移动。
3. 继续对列表中的每一对相邻元素进行比较和交换,直到遍历到列表的倒数第二个元素。
4. 重复执行步骤 1~3,直到列表中的所有元素都排序完成。
# 冒泡排序就是把最大的(最小的) 依次移动到最后
# 比较大小,如果是不满足顺序要求,则交换,如果满足顺序要求则不交换
# 从小到大
arr = [5, 4, 1, 3, 2]
# 第一次交换 arr=[4,1,3,2,5]
for i in range(len(arr) - 1):
if arr[i] > arr[i + 1]:
temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
print(arr) # [4, 1, 3, 2, 5]
# 第二次交换
for i in range(len(arr)-1-1):
if arr[i] > arr[i + 1]:
temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
print(arr) #[1, 3, 2, 4, 5]
# .....以此类推
# 外层,重复次数
# 冒泡排序
# 0-4 0,1,2,3 4次
for i in range(len(arr) - 1):
for j in range(len(arr) - 1 - i):
if arr[j] > arr[j + 1]:
temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
print(arr)