用python写一份冒泡排序
时间: 2023-09-23 10:05:50 浏览: 84
Python实现经典排序算法.rar
### 回答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):
# 比较相邻元素,如果左边比右边大,则交换
if arr[j] > arr[j+1] :
arr[j], arr[j+1] = arr[j+1], arr[j]
# 测试数组
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print ("排序后的数组:")
for i in range(len(arr)):
print ("%d" %arr[i]),
### 回答2:
冒泡排序是一种简单直观的排序算法,它通过不断交换相邻元素的位置来把最大(或最小)的元素冒泡到最后(或最前)的位置。下面是用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`的函数,它接受一个数组`arr`作为参数,并返回排好序的数组。函数中使用了两层循环,外层循环控制需要比较的轮数,内层循环用于相邻元素的比较和交换。
内层循环从第一个元素开始,依次比较相邻的元素。如果前一个元素比后一个元素大,则交换它们的位置。这样一轮下来,最大的元素就会沉到数组的最后位置。接着进行下一轮循环,但这时不需要比较已经排好序的元素,所以内层循环的次数会减少。
最后,当所有的元素都比较完毕并交换完位置后,冒泡排序就完成了。算法的时间复杂度为O(n^2),其中n是待排序数组的长度。
使用上述函数可以通过传入一个待排序的数组,测试冒泡排序的效果。例如,若输入`[4, 2, 6, 1, 9, 3]`,则函数返回`[1, 2, 3, 4, 6, 9]`。
### 回答3:
冒泡排序是一种简单的排序算法,在python中可以很容易地实现。下面是用python写的冒泡排序代码:
```
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n-1):
# 最后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]
# 测试代码
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" % arr[i])
```
这段代码定义了一个名为`bubble_sort`的函数,接受一个数组作为参数。首先通过`len`函数获取数组的长度`n`,然后使用两个嵌套的循环遍历数组。外部循环控制遍历的次数,内部循环用于比较相邻的元素并交换它们的位置。每次内部循环都将最大的元素“冒泡”到数组的末尾。最后,通过循环输出排序后的数组。
使用上述代码,给定的测试数组`[64, 34, 25, 12, 22, 11, 90]`将被排序为`[11, 12, 22, 25, 34, 64, 90]`。
阅读全文