用python写一个冒泡排序
时间: 2023-08-31 18:43:31 浏览: 84
用Python写冒泡排序代码
5星 · 资源好评率100%
### 回答1:
好的,下面是用Python实现冒泡排序的示例代码:
```python
def bubble_sort(nums):
n = len(nums)
for i in range(n):
for j in range(0, n-i-1):
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
```
以上代码实现了一个名为`bubble_sort`的函数,该函数接受一个数字列表作为输入,并返回一个排序后的列表。该函数使用冒泡排序算法进行排序,算法的核心是通过比较相邻的元素,将较大的元素交换到右侧,从而逐步“冒泡”出最大值,再对剩余未排序的元素进行相同的操作,直到所有元素都排好序。
可以通过以下方式调用该函数进行测试:
```python
nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_nums = bubble_sort(nums)
print(sorted_nums)
```
输出结果为:
```
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
希望这个例子能够帮助你理解冒泡排序算法的实现方式。
### 回答2:
冒泡排序是一种简单的排序算法,可以用Python编写。该算法逐个比较相邻的元素,并根据需要交换它们的位置。通过多次遍历列表,将最大的元素逐步冒泡到列表的末尾。
以下是用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]
return lst
```
在上述代码中,`bubble_sort`函数接受一个列表作为输入参数,并在原地排序该列表。函数使用两个嵌套的循环,第一个循环用于迭代列表的长度次数,第二个循环用于比较并交换元素的位置。每一轮循环都将最大的元素冒泡到列表的最后面。
为了测试这个函数,我们可以使用以下代码:
```python
lst = [3, 1, 4, 2, 5]
sorted_lst = bubble_sort(lst)
print(sorted_lst)
```
输出结果为:`[1, 2, 3, 4, 5]`,即排序后的列表。
### 回答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]
# 测试示例
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序结果:")
for i in range(len(arr)):
print("%d" % arr[i], end=" ")
```
在这个示例中,我们定义了一个名为`bubble_sort`的函数,它接受一个数组作为输入。函数中嵌套了两个for循环,外层循环用于控制每一趟冒泡的次数,内层循环用于实际进行相邻元素的比较与交换操作。如果相邻元素的顺序不满足要求,则进行交换操作,将较大(或较小)的元素“冒泡”到正确的位置。
以上是用Python写的冒泡排序的示例代码。该算法的时间复杂度为O(n^2),效率较低,但对于小规模的数据排序是简单有效的。
阅读全文