它重复地遍历要排序的元素,比较相邻的两个元素,并根据排序顺序交换它们的位置,直到整个数组排序完成为止。它的名字由于像气泡一样,较小的元素会逐渐“浮”到数组的顶端。
概括:
- 定义一个函数
bubble_sorted(arr)
,接受一个数组arr
作为参数。 - 获取数组的长度
n
。 - 使用两层循环,外层循环控制总共进行
n
次遍历,内层循环用于每次遍历中相邻元素的比较和交换。 - 内层循环中,遍历数组直到倒数第
i
个元素(外层循环每进行一次,表示已经将第i
大的元素放到了正确的位置,所以内层循环的范围也会相应减小)。 - 比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置,确保较大的元素向后移动。
- 如果进行了交换,将
sorted_add
标志设为False
,表示数组可能还没有完全排序。 - 如果内层循环结束时
sorted_add
仍为True
,即没有进行过交换,说明数组已经是有序的,此时跳出外层循环。 - 返回排序后的数组
arr
。 - 在主程序中定义一个数组
arr
,并调用bubble_sorted
函数对其进行排序。 - 输出排序后的结果。