如何使用for循环的冒泡排序算法对整数数组{-20, 20, 15, 89, 66, 10, 30}进行排序?
时间: 2024-10-11 16:11:15 浏览: 28
冒泡排序是一种简单的排序算法,它通过反复遍历待排序的数组,比较相邻元素并交换位置,使得较大(或较小)的元素逐渐“浮”到数组的顶端。以下是使用for循环的冒泡排序算法对给定整数数组{-20, 20, 15, 89, 66, 10, 30}进行排序的过程:
1. 初始化两个标志:`swapped`(表示是否进行了交换),默认值为`True`;`i`(当前元素的位置,从0开始)。
2. 创建一个for循环,迭代次数为数组长度减一(因为最后一次外层循环已经确定了最大的元素会在最后)。每次循环,都设置`swapped = False`。
3. 内层for循环从0到当前`i`值,逐个比较相邻的元素`arr[i]`和`arr[i+1)`:
- 如果`arr[i] > arr[i+1]`,交换它们的位置并将`swapped`设为`True`。
4. 循环结束后,如果`swapped`仍然是`False`,说明数组已经是有序的,可以直接跳出外部循环。否则,继续下一轮外部循环。
5. 当外部循环完成后,数组就按照升序排列好了。
下面是这个过程的伪代码表示:
```python
arr = [-20, 20, 15, 89, 66, 10, 30]
n = len(arr)
swapped = True
while swapped:
swapped = False
for i in range(n-1):
if arr[i] > arr[i+1]:
arr[i], arr[i+1] = arr[i+1], arr[i] # 交换元素
swapped = True
n -= 1 # 减小范围,避免再做无用比较
print("排序后的数组:", arr)
阅读全文