用Python写冒泡排序
时间: 2024-03-13 20:18:18 浏览: 15
好的,下面是 Python 写的冒泡排序的例子:
```
def bubble_sort(lst):
n = len(lst)
for i in range(n-1): # 比较n-1轮
for j in range(n-1-i): # 每轮比较n-1-i次
if lst[j] > lst[j+1]: # 如果当前元素比后一个大,就交换它们的位置
lst[j], lst[j+1] = lst[j+1], lst[j]
return lst
print(bubble_sort([3, 4, 2, 1])) # [1, 2, 3, 4]
```
冒泡排序的时间复杂度为 O(n^2),是一种比较慢的排序算法。如果你的数据规模较大,可能需要使用更快的排序算法。
相关问题
用python写冒泡排序
### 回答1:
用Python写冒泡排序的代码如下:def bubble_sort(list):
for i in range(len(list)):
for j in range(0, len(list)-i-1):
if list[j] > list[j+1]:
list[j], list[j+1] = list[j+1], list[j]list = [64, 34, 25, 12, 22, 11, 90]bubble_sort(list)print("排序后的列表为:",list)
### 回答2:
冒泡排序是一种简单但低效的排序算法,其基本思想是反复遍历待排序的元素列表,比较相邻元素的大小,如果顺序错误,则互相交换位置,直到最大(或最小)元素被交换到列表的末尾。以下是用Python编写冒泡排序的代码:
```python
def bubble_sort(lst):
n = len(lst)
for i in range(n):
for j in range(0, n-i-1):
if lst[j] > lst[j+1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
# 测试代码
lst = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(lst)
print("排序后的列表:", lst)
```
在上述代码中,`bubble_sort`方法接收一个列表作为输入参数,并使用嵌套的`for`循环进行排序。外部的`for`循环控制迭代次数,内部的`for`循环用于比较相邻元素并进行交换。如果当前元素大于下一个元素,则进行交换。通过重复进行这样的比较和交换,列表中的最大元素将被交换到其应有的位置。内部的`for`循环在每一轮迭代中逐渐减少,因为已经排好序的元素会逐渐向列表的末尾移动。
在上述代码中,我们使用一个测试列表来验证冒泡排序的工作是否正确,并将排序后的结果打印出来。运行代码后,输出结果应该是`[11, 12, 22, 25, 34, 64, 90]`,表示列表已经按照从小到大的顺序进行了排序。
### 回答3:
冒泡排序是一种简单但效率较低的排序算法。下面是用Python实现冒泡排序的代码:
```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]
return arr
```
在这段代码中,我们首先定义了一个bubble_sort函数,它接受一个列表作为输入参数。
然后我们用两个嵌套循环对整个数组进行遍历。外部循环用于控制遍历的轮数,内部循环控制每轮需要比较的次数。这样每经过一轮,数组中最大的元素就会被交换到合适的位置。
内部循环中,我们使用了一个if语句来比较相邻的两个元素大小。如果前一个元素大于后一个元素,就交换它们的位置。这样一轮下来,最大的元素就会被移动到最后一个位置。
最后,我们返回排序后的数组。
以上是用Python实现冒泡排序的简单示例。冒泡排序的时间复杂度为O(n^2),当数据量较大时,会显得效率较低。