用python写一段冒泡排序的算法
时间: 2023-08-13 12:08:21 浏览: 166
下面是用Python实现的冒泡排序算法:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 从 0 到 n-i-1 遍历,每次将最大值交换到后面
for j in range(n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
```
其中,`arr` 是待排序的数组。算法的核心思想是从数组的第一个元素开始,不断比较相邻的两个数的大小,将较大的数向后交换,直到数组被完全排序。在每一轮排序中,都会把当前最大的值交换到数组的最后面,因此需要遍历的次数会逐渐减少。
相关问题
用python写一段冒泡排序的算法,并注释
当然可以,请看下面的代码,我已经给出了详细的注释说明:
```python
def bubble_sort(arr):
"""
冒泡排序算法
参数:
arr: list,待排序的数组
返回值:
无,函数会直接修改原数组
"""
# 获取数组长度
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]
```
这个算法的时间复杂度为 $O(n^2)$,不适合大规模数据的排序。但是它的实现非常简单易懂,适合初学者学习。
使用python写一段冒泡排序
好的,下面是使用Python编写的冒泡排序算法示例:
```python
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 最后 i 个元素已经排好序了
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])
```
输出结果为:
```
排序后的数组:
11
12
22
25
34
64
90
```
阅读全文