编写函数,模拟python内置函数sorted()。
时间: 2023-04-21 13:00:14 浏览: 111
可以使用冒泡排序、选择排序、插入排序、快速排序等算法来实现模拟Python内置函数sorted()的功能。
以下是一个使用快速排序算法实现的示例代码:
```python
def my_sorted(iterable, reverse=False):
# 定义快速排序函数
def quick_sort(array):
if len(array) < 2:
return array
else:
pivot = array[0]
less = [i for i in array[1:] if i <= pivot]
greater = [i for i in array[1:] if i > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
# 对可迭代对象进行转换
if isinstance(iterable, dict):
iterable = iterable.items()
elif not isinstance(iterable, (list, tuple)):
iterable = list(iterable)
# 对转换后的列表进行排序
sorted_list = quick_sort(iterable)
# 根据reverse参数确定排序顺序
if reverse:
sorted_list.reverse()
return sorted_list
```
使用示例:
```python
>>> my_sorted([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
>>> my_sorted([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5], reverse=True)
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
>>> my_sorted({'a': 3, 'c': 1, 'b': 2})
[('a', 3), ('b', 2), ('c', 1)]
```
阅读全文