定义一个函数bubble_sort,实现对数量不确定的一组数据采用冒泡排序法进行排序,返回结果为列表对象。同时,该函数有一个可选参数ascending,默认值为True,当该参数为True时,函数进行升序排序;该参数为False时,函
时间: 2024-03-25 13:35:54 浏览: 60
数进行降序排序。
以下是实现该函数的Python代码:
```python
from typing import List
def bubble_sort(data: List[int], ascending: bool = True) -> List[int]:
n = len(data)
for i in range(n-1):
for j in range(n-i-1):
if ascending:
if data[j] > data[j+1]:
data[j], data[j+1] = data[j+1], data[j]
else:
if data[j] < data[j+1]:
data[j], data[j+1] = data[j+1], data[j]
return data
```
该函数接受一个列表作为参数,使用冒泡排序法对列表进行排序,然后返回排序后的列表。可选参数`ascending`用于控制排序方向,默认为升序。如果`ascending`为True,则按照升序排序;否则,按照降序排序。
相关问题
定义一个函数bubble_sort,实现对数量不确定的一组数据采用冒泡排序法进行排序,返回结果为列表对象。同时,该函数有一个可选参数ascending,默认值为True,当该参数为True时,函数进行升序排序;该参数为False时,函数进行降序排序。
好的,以下是函数的实现:
```python
def bubble_sort(data, ascending=True):
"""
使用冒泡排序法对数据进行排序
:param data: 待排序的数据,类型为列表对象
:param ascending: 是否升序排序,默认为True,即升序排序
:return: 排序后的列表对象
"""
length = len(data)
for i in range(length - 1):
for j in range(length - i - 1):
if ascending:
if data[j] > data[j + 1]:
data[j], data[j + 1] = data[j + 1], data[j] # 交换位置
else:
if data[j] < data[j + 1]:
data[j], data[j + 1] = data[j + 1], data[j] # 交换位置
return data
```
示例:
```python
data = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(bubble_sort(data)) # 升序排序
print(bubble_sort(data, False)) # 降序排序
```
输出:
```
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
```
定义一个bubble-sort函数,实现对数量不确定的一组数据采用冒泡排序法排序,返回结果为列表对象
在Python中,你可以定义一个名为`bubble_sort`的函数,利用冒泡排序算法对输入的无序列表进行排序。冒泡排序是一种简单的排序算法,它重复遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
下面是一个基本的冒泡排序函数实现示例:
```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
# 测试函数
unsorted_list = [64, 34, 25, 12, 22, 11, 90]
sorted_list = bubble_sort(unsorted_list)
print(sorted_list) # 输出:[11, 12, 22, 25, 34, 64, 90]
```
这个`bubble_sort`函数接受一个列表作为输入,然后返回一个经过冒泡排序后的有序列表。
阅读全文