用Python写一个冒泡排序
时间: 2023-09-13 19:05:25 浏览: 96
用Python写冒泡排序代码
5星 · 资源好评率100%
### 回答1:
答案:下面是Python代码实现冒泡排序的示例: def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already in place
for j in range(0, n-i-1):
# traverse the array from 0 to n-i-1
# Swap if the element found is greater
# than the next element
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
### 回答2:
冒泡排序是一种简单的排序算法,它重复地遍历要排序的序列,比较相邻的两个元素,如果它们的顺序错误就交换位置,直到没有需要交换的元素为止。以下是用Python语言编写的冒泡排序算法示例:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
# 标记是否有交换发生
swapped = False
for j in range(0, n - i - 1):
# 相邻元素比较,如果顺序错误则交换
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = True
# 如果没有交换发生,说明已经有序,提前退出循环
if not swapped:
break
return arr
# 测试代码
arr = [64, 34, 25, 12, 22, 11, 90]
print("排序前:", arr)
print("排序后:", bubble_sort(arr))
以上代码首先定义了一个名为bubble_sort的函数,接受一个列表参数arr。该函数中使用两个循环嵌套来进行排序操作。外层的循环从0到n-1,表示需要进行n-1次遍历。内层的循环从0到n-i-1,表示每一次遍历需要比较的元素个数,且随着外层循环的进行,内层循环需要比较的元素个数逐次减少。内层循环中,通过比较相邻元素的大小,若顺序错误则进行交换,直到完成整个序列的排序。另外,代码中利用一个变量swapped来标记是否有交换发生,如果某次排序中没有任何元素交换位置,则说明整个序列已经有序,可以提前退出外层循环。
最后通过测试代码对冒泡排序进行验证。将一个未排序的列表作为输入参数传递给bubble_sort函数,并将排序前和排序后的结果进行输出。
### 回答3:
冒泡排序是一种基本的排序算法,通过比较相邻的元素并交换位置,从而将最大的元素逐步“冒泡”到最后。
要用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
这样,我们就定义好了一个能够实现冒泡排序功能的函数。接下来,我们可以测试一下:
test_list = [5, 2, 8, 9, 1, 3, 7]
sorted_list = bubble_sort(test_list)
print(sorted_list)
输出结果为:[1, 2, 3, 5, 7, 8, 9]
这样,我们就成功地用Python实现了一个冒泡排序算法。
阅读全文