# coding=utf-8
__author__ = 'tsaowe'
#升序排序
def sort(array, start, end):
"""
:param array: 待排序的序列
:param start: 排序的方向的第一个数的位置
:param end: 排序方向上的最后一个数的位置
"""
if start > end:
if abs(start - end) == 1:
if array[start] < array[end]:
array[start], array[end] = array[end], array[start]
else:
for i in range(start, end, -1):
if array[i] < array[i - 1]:
array[i], array[i - 1] = array[i - 1], array[i]
sort(array, end + 1, start)
else:
if abs(start - end) == 1:
if array[start] > array[end]:
array[start], array[end] = array[end], array[start]
else:
for i in range(start, end, 1):
if array[i] > array[i + 1]:
array[i], array[i + 1] = array[i + 1], array[i]
sort(array, end - 1, start)
if __name__ == '__main__':
array = [1, 9, 7, 2, 6, 8, 10, -2, 7, 7, 89, 87, 45, -9]
sort(array, 0, len(array) - 1)
print(array)
鸡尾酒排序 递归 python实现
最新推荐文章于 2022-10-28 21:29:07 发布