慢速排序

✍ dations ◷ 2025-11-24 15:52:02 #慢速排序

慢速排序是一种排序算法。其基于合并排序的分而治之及递回的思想,并故意设计使排序过程非常缓慢。慢速排序由Andrei Broder及Jorge Stolfi在1986年发表的论文(论文名称是渐进最优算法及计算复杂性理论的戏仿)中提出。

慢速排序是一种原地算法的递回算法。

在简单的虚拟码中,此算法可以被表示为:

procedure slowsort(A, i, j)                           // 排序一個整數或浮點數數列 A,...,A ,若要使用其他的資料類型則必須重載大於或小於運算符    if i ≥ j then        return    m := ⌊(i+j) / 2⌋                                slowsort(A, i, m)                                 // (1.1)    slowsort(A, m+1, j)                               // (1.2)    if A < A then        swap A and A                            // (1.3)    slowsort(A, i, j-1)                               // (2)
  • 以慢速排序法排序前半部的元素(1.1)
  • 以慢速排序法排序后半部的元素(1.2)
  • 比较1.1及1.2排序结果的最后一个元素,选择相对较大的元素放到列表尾端(1.3)
  • 排除1.3的元素后,将列表剩下的元素以慢速排序法排序(2)

以 Haskell(纯函式编程语言)的实现如下:

slowsort :: Ord a =>  -> slowsort xs  | length xs <= 1 = xs  | otherwise      = slowsort xsnew ++   -- (2)    where        l     = slowsort $ take m xs  -- (1.1)      r     = slowsort $ drop m xs  -- (1.2)      llast = last l      rlast = last r      xsnew = init l ++ min llast rlast : init r      m     = fst (divMod (length xs) 2)

复杂度

慢速排序的运行时间关系式为 T ( n ) = 2 T ( n / 2 ) + T ( n 1 ) + 1 {displaystyle T(n)=2T(n/2)+T(n-1)+1} T ( n ) {displaystyle T(n)} 的渐近下限为 Ω ( n log 2 ( n ) ( 2 + ϵ ) ) {displaystyle Omega left(n^{frac {log _{2}(n)}{(2+epsilon )}}right)} for any ϵ > 0 {displaystyle epsilon >0} 。由于慢速排序渐近下限的时间复杂度不是多项式时间,即使在最好的情况下也比泡沫排序慢。

相关

  • 施莱尔马赫弗里德里希·施莱尔马赫(又译为士来马赫,德语:Friedrich Daniel Ernst Schleiermacher;1768年11月21日-1834年2月12日),德国19世纪神学家及哲学家,被称为现代神学、现代诠释之父,主张
  • 消费者厅消费者厅(日语:消費者庁/しょうひしゃちょう、英语:Consumer Affairs Agency, CAA)是日本行政机关之一,为内阁府的外局。依据消费者基本法(日语:消費者基本法)第2条“尊重消费者权利
  • 札加瓦人札加瓦(英语:Zaghawa)是非洲的一个民族,主要生活在查德东部与苏丹西部。他们属于半游牧民族,以驯养牛、骆驼与绵羊为生;此外也种植一些粮食作物。札加瓦人在13世纪之后改信伊斯兰
  • 中海岸中海岸(Central Coast)又译中央海岸,是澳大利亚新南威尔士州的一个统计分区,位于悉尼以北及纽卡素以南之间的海岸。现时中海岸所辖之两个小区合计有人口304,600,是纽省以人口计的
  • 利比亚共产党已消亡 已放弃共产主义意识形态 已消亡 已放弃共产主义意识形态 已消亡 已放弃共产主义意识形态 已消亡 已消亡 已放弃共产主义意识形态 利比亚共产党(阿拉伯语:حزب
  • 福州新区福州新区成立于2015年9月,位于福州市滨海地区,初期规划面积800平方公里,范围包括马尾区、仓山区、长乐区和福清市的部分区域,共计26个乡镇、街道,常住人口155.5万人。这是中华人
  • 德裔墨西哥人德裔墨西哥人(德语:Deutschmexikaner 或Deutsch-Mexikanisch ,西班牙语:germano- mexicano 或alemán-mexicano )指的是拥有德国血统的墨西哥公民。墨西哥的绝大多数德裔移民都是在19世纪中后期墨西哥总统波费里奥·迪亚斯的政策鼓励下来到的这里。虽然有一大部分德裔移民沾了当时墨西哥的自由化政策的光并投身商业、工业以及教育业,但也有不少德国穷人移民墨西哥打工、务农。大部分德裔移民都定居在墨西哥城、韦拉克鲁斯州、尤卡坦州以及普埃布拉州。一战、二战期间
  • 阿列克谢·雅科夫列维奇·翡里德阿列克谢·雅科夫列维奇·翡里德(俄语:Алексей Яковлевич Фриде,1838年3月8日-1896年7月9日),是俄国的陆军中将,曾参加俄罗斯入侵突厥斯坦战役,担任过七河州的军事州长。1882年10月29日,与郭博勒·长顺在伊犁签订中俄《伊犁界约》。
  • 鄢一忠鄢一忠,(1955年11月-),福建永泰人,中华人民共和国政治人物,中央党校大学学历,1972年12月参加工作,1975年8月加入中国共产党,曾担任福建省民政厅副厅长、福建省人民政府副秘书长等职务。1972年12月至1997年8月,在部队服役。1997年转至地方参加工作,先后任福建省民政厅办公室副主任,福建省民政厅副厅长、党组成员等职务,2009年开始主政福建省农村信用社联合社任该社的党委书记、理事长,2018年12月退休。2022年6月,接受福建省纪委监委纪律审查和监察调查。
  • 阿尔发旗鳉阿尔发旗鳉,为辐鳍鱼纲鲤齿目鰕鳉亚目鰕鳉科的其中一种,为热带淡水鱼,被IUCN列为濒危保育类动物,分布于非洲加蓬西北部淡水流域,体长可达43公分,栖息在森林覆盖、沙底质的溪流底中层水域,生活习性不明。 维基物种上的相关信息:阿尔发旗鳉