python冒泡排序
时间: 2023-02-06 07:34:15 浏览: 16
冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。
下面是用 Python 实现的冒泡排序算法:
```
def bubble_sort(lst):
n = len(lst)
for i in range(n-1):
for j in range(n-i-1):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
return lst
```
使用方法:
```
sorted_list = bubble_sort([5, 2, 4, 1, 3])
print(sorted_list)
```
输出结果:
```
[1, 2, 3, 4, 5]
```
冒泡排序的时间复杂度是 O(n^2),它的优化版本是快速排序,其时间复杂度是 O(nlogn)。
相关问题
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
```
在这个实现中,我们使用两个 for 循环来遍历整个数组。外层循环控制排序次数,内层循环用来比较相邻的元素和交换它们的位置。如果当前元素大于下一个元素,则交换它们的位置,否则继续比较下一组相邻的元素。
使用上述函数可以对列表进行冒泡排序,例如:
```python
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("排序后的数组:", sorted_arr)
```
输出结果为:
```
排序后的数组: [11, 12, 22, 25, 34, 64, 90]
```
Python 冒泡排序
很高兴能够回答你的问题,Python冒泡排序是一种基于比较交换的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换,也就是说该数列已经排序完成。
阅读全文