Python实现臭皮匠算法(Stooge Sort)

臭皮匠排序(Stooge Sort)是一种递归排序算法,是一种比较低效率的排序算法;

使用Python实现臭皮匠排序

def stoogesort(arr, l, h):
    if l >= h : return
    if arr[l] > arr[h]:
        t = arr[l]
        arr[l] = arr[h]
        arr[h] = t

    if h-l+1 > 2:
        t = int((h-l+1)/3)
        stoogesort(arr, l, h-t)
        stoogesort(arr, l+t, h)
        stoogesort(arr, l, h-t)
   
  
arr = [ 11 , 15 , 2 , 11 , 9 , 21 ]
print('排序前:',arr)
stoogesort(arr, 0, len(arr)-1)
   
print('排序后:',arr)

输出:

排序前: [11, 15, 2, 11, 9, 21]
排序后: [2, 9, 11, 11, 15, 21]

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/stooge-sort-in-python.html

分类: 计算机技术
推荐阅读:
Rust好用的GUI库 Rust生态系统中有许多GUI库可供选择,以下是一些受欢迎的Rust GUI库:
如何忽略pymysql警告信息 在python中使用pymysql库时,你可能会碰到由pymysql生成的警告信息;
MySQL ERROR 1062错误出现原因及解决方法 当一个字段被设置成了主键(Primary Key)或唯一索引(Unique Index)时,那么该字段的数据不能重复;如果尝试插入已有数据,将产生1062错误;
Python生成n个元素的全排列 本文将使用Python语言编写程序生成n个元素的全排列,代码不使用第三方库;
Python实现快速排序(quick sort) 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
Rust file宏的用法和示例 在Rust中,file宏用于获取当前源文件的文件名;这在调试和日志记录等场景中非常有用,因为你可以动态地获取当前代码所在的文件名;