睡觉排序大法 - 用草蟒实现
近日,排序算法界冒出一个终极大法,缺觉少睡的程序猿只要睡睡觉,工作就完成了,是谓“睡觉排序大法”。
下面就是老吴用草蟒——Python 汉化版中文编程语言——实现的睡觉排序:
导入 时间
导入 线程化
列表哦 = [10, 7, 8, 5, 1, 2, 4, 3, 6, 9]
新列表 = [] # 用于存放排好序的数据
函 睡觉(n):
全局 新列表
时间.睡眠(n)
新列表.追加(n)
函 主函数():
取 i 于 列表哦:
线程 = 线程化.线程类(目标=睡觉, 参数=(i,)) # 为每个数创建一个睡觉线程
线程.开始()
取 线程 于 线程化.枚举()[1:]: # 枚举() 返回所有线程, 去掉第一个主线程
线程.并入() # 调用 并入() 方法, 等所有线程都运行完毕再做其他操作
打印(新列表)
如果 __名称__ == '__主体__':
主函数()
经测试,结果非常稳定。用很小的小数测试也能正确排序。
如果你不想多睡会,可以将传入的睡眠时间参数 i 除以 10/100/1000 倍等,然后在向列表追加元素时乘以相同的倍数即可。
如果有负数,可以让所有元素增加最大负数的相反数,排序后追加元素时减去该数即可。
睡眠排序大法好!