python写一个冒泡排序
时间: 2023-06-05 10:04:10 浏览: 56
冒泡排序是一种简单的排序算法,它重复地走过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走完整个数列后,最大的元素就“浮”到了数列的最后面。重复这个过程,直到整个数列有序。
这是一个 Python 代码的例子:
```
def bubble_sort(lst):
# 获取列表的长度
n = len(lst)
# 重复 n-1 次
for i in range(n-1):
# 标志位,用来判断列表是否已经有序
flag = False
# 重复从第一个元素到第 n-1-i 个元素
for j in range(n-1-i):
# 如果当前元素比后一个元素大,就交换他们的位置
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
flag = True
# 如果列表已经有序,就退出循环
if not flag:
break
return lst
# 测试代码
print(bubble_sort([5, 2, 3, 1, 4])) # [1, 2, 3, 4, 5]
```
冒泡排序的时间复杂度是 O(n^2),它是一种比较慢的排序算法,但是它很容易理解和实现。
相关问题
python 写一个冒泡排序
好的,下面是 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(arr[i], end=" ")
```
输出结果:
```
排序后的数组:
11 12 22 25 34 64 90
```
注:冒泡排序是一种效率较低的排序算法,不适用于大规模数据的排序,仅适用于数据量较小的排序场景。
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]
return arr
```
示例:
```python
arr = [64, 34, 25, 12, 22, 11, 90]
print("排序前:", arr)
sorted_arr = bubble_sort(arr)
print("排序后:", sorted_arr)
```
输出:
```
排序前: [64, 34, 25, 12, 22, 11, 90]
排序后: [11, 12, 22, 25, 34, 64, 90]
```