能用python写一段冒泡排序吗
时间: 2023-02-08 13:25:40 浏览: 89
当然可以。冒泡排序的基本思想是重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。这样遍历数列的过程一直进行到没有再需要交换的元素为止。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
下面是一段 Python 代码,实现了冒泡排序算法:
```
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already in place
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]),
```
希望这段代码对你有帮助。
相关问题
用python写一段冒泡排序
下面是用 Python 写的冒泡排序的代码:
```
def bubble_sort(nums):
# 遍历所有数字
for i in range(len(nums)):
# 标记是否发生交换
swapped = False
# 遍历所有数字,并尝试交换相邻的两个数字
for j in range(len(nums) - i - 1):
if nums[j] > nums[j + 1]:
# 发生交换,标记
swapped = True
# 交换两个数字
nums[j], nums[j + 1] = nums[j + 1], nums[j]
# 如果没有发生交换,说明已经排序完成,退出循环
if not swapped:
break
return nums
# 测试
print(bubble_sort([5, 2, 3, 1, 4])) # [1, 2, 3, 4, 5]
print(bubble_sort([1, 2, 3, 4, 5])) # [1, 2, 3, 4, 5]
print(bubble_sort([5, 4, 3, 2, 1])) # [1, 2, 3, 4, 5]
```
冒泡排序的基本思想是:通过多次遍历列表,依次比较相邻的两个数字,如果顺序不正确就交换位置。每遍历一次列表,就能确定一个数字的最终位置,所以总共需要遍历 len(nums) 次。
代码中的变量 swapped 用来标记是否发生交换,如果没有发生交换,就说明列表已经有序,可以退出循环。这样可以提升冒泡排序的效率,使得时间复杂度达到最优的 O(n)。
用Python写一段冒泡排序
好的,以下是用 Python 写的冒泡排序代码:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
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 = [64, 34, 25, 12, 22, 11, 90]
print("排序前的数组:")
print(arr)
bubble_sort(arr)
print("排序后的数组:")
print(arr)
阅读全文