# 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基于递归算法实现的走迷宫问题,结合迷宫问题简单分析了Python递归算法的定义与使用技巧,需要的朋友可以参考下
该源码主要在winform中实现的堆的构造,大顶堆和小顶堆的构造,在构造过程中有递归和非递归两种方式实现,当然必不可少的是堆排序了
可以用递归快速实现排序算法,简洁高效,算法复杂度比较合理
c++实现的合并排序算法 用递归和非递归两种方式实现的
冒泡排序和递归求和JAVA实现,包括需要实现这类代码是需要注意的问题都写在注释里
1、递归的特点 递归算法是一种直接或间接调用自身算法的过程,在计算机编程中,递归算法对解决一大类问题是十分,它往往使算法的描述简洁而且易于理解。 递归算法解决问题的特点: (1)递归就是在过程或函数里...
从零开始Python实现一个递归下降JSON解释器和生成器
冒泡排序递归算法
合并排序递归和非递归算法的实现可以让人理解到递归算法的实现有时候比非递归算法效率高很多,人只需要给出一个递归公式和一个递归出口,所有的事都可以交给计算机来完成了
基于breast_cancer数据集进行横向联邦学习逻辑递归的实现python源码.zip基于breast_cancer数据集进行横向联邦学习逻辑递归的实现python源码.zip基于breast_cancer数据集进行横向联邦学习逻辑递归的实现python源码....
使用递归的方法实现快速排序,简洁明了,避免了烦琐的考虑循环。
利用栈来消除递归 模拟快速排序的过程 实现非递归的快速排序
两种方法: 传统的递归快速排序 采用非递归堆栈模拟
这个是在vc6.0下利用递归算法实现的基数排序算法的程序,注释很详细,方便初学者读
手动输入一个字符串,Python用递归实现字符串反转
阿克曼函数非递归实现,用到了堆栈,对于学习数据结构的人来说很有用
插入排序递归非递归汇编写法 内含详细注释
此文档是快速排序的递归与非递归的具体实现代码
递归方法实现斐波那契数列