用Python 写一个冒泡排序
时间: 2023-08-31 14:29:04 浏览: 103
用Python写冒泡排序代码
5星 · 资源好评率100%
### 回答1:
好的,下面是一个用 Python 实现的冒泡排序代码:
```
def bubble_sort(list):
n = len(list)
for i in range(n):
for j in range(0, n - i - 1):
if list[j] > list[j + 1]:
list[j], list[j + 1] = list[j + 1], list[j]
return list
# 测试代码
list = [64, 34, 25, 12, 22, 11, 90]
print("排序前的数组:", list)
bubble_sort(list)
print("排序后的数组:", list)
```
该代码实现了冒泡排序算法,它比较相邻的元素,如果第一个比第二个大,则交换它们。它重复这个过程,直到列表有序。
### 回答2:
冒泡排序是一种简单的排序算法,通过连续比较相邻的元素并交换位置来逐渐把最大(或最小)的元素移到最后面。下面是用Python实现冒泡排序的代码:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-1-i):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# 测试
arr = [10, 5, 8, 2, 3]
sorted_arr = bubble_sort(arr)
print(sorted_arr)
```
在这段代码中,我们定义了一个`bubble_sort`函数来实现冒泡排序。参数`arr`是待排序的数组。我们首先通过`len(arr)`获取数组的长度,然后使用两层循环进行比较和交换。
外层循环通过`range(n-1)`遍历数组,其中`n`是数组的长度。内层循环通过`range(n-1-i)`遍历未排序的元素,`i`是外层循环的当前迭代次数。
在内层循环中,我们比较相邻的元素`arr[j]`和`arr[j+1]`。如果`arr[j]`大于`arr[j+1]`,则交换它们的位置。通过这样的比较和交换操作,最大的元素会逐渐被移动到数组的末尾。
最后,我们返回排序后的数组`arr`。在示例中,输入数组`[10, 5, 8, 2, 3]`经过冒泡排序后,输出为`[2, 3, 5, 8, 10]`。
### 回答3:
冒泡排序是一种简单直观的排序算法,通过多次交换相邻元素的位置来完成排序。下面是用Python编写的冒泡排序算法:
```python
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 每一轮遍历将最大元素移到末尾
for j in range(0, n-i-1):
# 如果当前元素大于下一个元素,则交换它们的位置
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# 测试
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" %arr[i])
```
上述代码通过两层循环实现冒泡排序,外层循环控制遍历次数,内层循环通过比较当前元素和下一个元素的大小,如果当前元素大于下一个元素,则交换它们的位置,直到最大元素移动到末尾。接着再次进行循环,直到所有元素都有序排列。
对于给定的测试数组[64, 34, 25, 12, 22, 11, 90],冒泡排序会经过多次遍历交换元素的操作,最终得到有序的数组[11, 12, 22, 25, 34, 64, 90]。
阅读全文