鸡尾酒排序 递归 python实现

# 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值