有n个整数,请使用冒泡排序算法对其从小到大排序,输出第m趟排序的结果
时间: 2024-05-09 19:16:39 浏览: 24
冒泡排序算法的基本思路是:比较相邻两个元素,如果前一个元素比后一个元素大,则交换这两个元素。一趟排序完成后,最后一个元素肯定是当前序列中的最大元素,因此在下一趟排序时就可以不考虑最后一个元素。每趟排序都确定一个当前未排序的最大元素,因此需要进行n-1趟排序。
以下是冒泡排序算法的实现代码:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
print("第%d趟排序结果:" % (i+1), arr)
return arr
```
其中,第一个循环用于控制排序的趟数,第二个循环用于一趟排序中的比较和交换操作。在第二个循环中,j的范围为0到n-i-2,因为每趟排序都会确定一个当前未排序的最大元素,已经排好序的元素不再参与比较。
输出第m趟排序的结果,只需要在第一个循环中添加一个判断条件即可:
```python
def bubble_sort(arr, m):
n = len(arr)
for i in range(n-1):
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
if i == m-1:
print("第%d趟排序结果:" % m, arr)
return arr
```
当i等于m-1时,输出当前的排序结果。注意,m的取值范围为1到n-1,因为最后一趟排序不需要输出。
示例:
```python
arr = [3, 1, 4, 2, 5]
sorted_arr = bubble_sort(arr, 3)
print("最终排序结果:", sorted_arr)
```
输出:
```
第1趟排序结果: [1, 3, 2, 4, 5]
第2趟排序结果: [1, 2, 3, 4, 5]
第3趟排序结果: [1, 2, 3, 4, 5]
最终排序结果: [1, 2, 3, 4, 5]
```