`

鸡尾酒排序 递归 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)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics