使用while循环实现冒泡排序
时间: 2024-09-30 20:12:10 浏览: 24
JS实现冒泡排序,前端必会
冒泡排序是一种简单的排序算法,它通过反复遍历待排序数组,比较相邻元素并交换位置,使得较大(或较小)的元素逐渐“浮”到数组的一端。使用while循环实现冒泡排序的过程可以分为以下步骤:
1. 初始化:设置两个标志,`swapped` 表示是否进行了元素交换,初始值设为`true`;`i`表示当前已比较过的元素次数,从0开始。
2. 循环条件:当`swapped` 为`false` 或者 `i >= 数组长度 - 1`时,说明数组已经有序,跳出循环。如果`swapped` 为`true`,则继续下一轮循环。
3. 比较和交换:对于数组中的每一对相邻元素(`arr[i]` 和 `arr[i+1]`),如果它们的顺序错误(即前一个大于后一个),就交换它们的位置,并将`swapped` 设为`true`。
4. 更新索引:每次内层循环结束后,`i`加1,因为上一次检查了最大的元素,所以这次不用再检查它。
5. 重复步骤2-4,直到整个过程完成。
以下是使用Python的while循环实现冒泡排序的例子:
```python
def bubble_sort(arr):
n = len(arr)
swapped = True
i = 0
while swapped:
swapped = False
for j in range(1, n-i):
if arr[j-1] > arr[j]:
arr[j-1], arr[j] = arr[j], arr[j-1]
swapped = True
i += 1
# 示例
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:", arr)
阅读全文