用python写出冒泡排序
时间: 2023-08-26 15:11:11 浏览: 83
用Python写冒泡排序代码
5星 · 资源好评率100%
### 回答1:
冒泡排序是一种简单的排序算法,它重复地走过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走完整个数列后,最大的元素就在数列的末尾。那么,重复 n 次,就可以完成排序。
下面是用 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]),
```
在这段代码中,我们定义了一个名为 `bubble_sort` 的函数,它接受一个数组作为参数,然后使用冒泡排序算法对数组进行排序。在函数中,我们首先遍历数组中的所有元素,然后对相邻的两个元素进行比较。如果它们的顺序错误,就交换它们的位置。接着,我们测试了这个函数,并打印了排序后的数组。
### 回答2:
冒泡排序是一种简单的排序算法,重复地比较相邻的两个元素,并且交换位置,直到整个序列按照升序或降序排列。下面是使用Python编写的冒泡排序算法代码:
```python
def bubble_sort(nums):
n = len(nums)
for i in range(n-1):
# 每一轮循环中都会把当前最大的数移动到末尾,所以下一轮可以减少比较次数
for j in range(n-i-1):
# 比较相邻的元素并交换位置
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
```
该冒泡排序算法的时间复杂度为O(n^2),其中n为待排序序列的长度。算法的核心思想是通过相邻元素的比较和交换操作,不断地将当前最大(或最小)的元素移动到末尾,直到整个序列有序。
使用该冒泡排序算法,你可以通过传入一个待排序的列表,然后得到一个排序好的列表作为返回值。例如,对于输入的列表[4, 2, 7, 1, 3],调用`bubble_sort([4, 2, 7, 1, 3])`会返回[1, 2, 3, 4, 7]。
### 回答3:
冒泡排序是一种简单的排序算法,它重复地遍历待排序的序列,每次比较相邻的两个元素,如果顺序不对就交换位置。经过一轮的遍历后,最大(或最小)的元素会被放到序列的最后。然后再次从头开始遍历,直至所有元素都按照顺序排列。
下面是使用Python写出冒泡排序的示例代码:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n - 1):
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])
```
在这个示例中,我们定义了一个名为`bubble_sort`的函数来实现冒泡排序。首先,我们用变量`n`存储列表`arr`的长度,然后使用两个嵌套的`for`循环来遍历列表。外部循环控制遍历的轮数,内部循环用于比较并交换相邻元素的位置。如果当前元素大于下一个元素,则交换它们的位置。通过循环,最大的元素会逐渐“冒泡”到列表的最后。最后,我们通过遍历打印出排序后的数组。
运行以上代码,输出将是:`[11, 12, 22, 25, 34, 64, 90]`,即按照升序排列的数组。
阅读全文