慢速排序

✍ dations ◷ 2025-11-03 14:06:53 #慢速排序

慢速排序是一种排序算法。其基于合并排序的分而治之及递回的思想,并故意设计使排序过程非常缓慢。慢速排序由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} 。由于慢速排序渐近下限的时间复杂度不是多项式时间,即使在最好的情况下也比泡沫排序慢。

相关

  • 吠陀宗教印度吠陀时期兴都教(前1500年至前500年间)为印度河流域当地人们的原始信仰,被称为吠陀教(英语:Vedism)、吠陀宗教、早期印度教(ancient Hinduism)英国人称为婆罗门教(英语:Brahmanism)
  • 二重感染二重感染指有机体内正常菌群中的优势种大部分被抑制,只有少数的菌种增殖异常旺盛,这是一种严重的菌群失调,常表现为急性疾病。导致二重感染的原因主要是长期使用广谱抗生素,使对
  • 福岛安正福岛安正(1852年10月27日(嘉永5年9月15日) - 1919年(大正8年)2月19日),日本陆军大将,男爵头衔。继承萩野末吉的情报军官。墓所在东京都港区青山墓地。 1912年4月26日—1914年9月15日
  • CoffeeScriptCoffeeScript是一套JavaScript的转译语言。受到Ruby、Python与Haskell等语言的启发,CoffeeScript增强了JavaScript的简洁性与可读性。此外,CoffeeScript也新增了更复杂的功能,
  • 阿布·奥马尔·阿尔-科威提阿布·奥马尔·阿尔-科威提(Abu Omar al-Kuwaiti;?-2005年2月16日),是科威特人,也是盖达成员,早期在阿富汗,后来在车臣和外围的高加索地区活动。他早期是儿童节目演员,后来虔心宗教,并
  • 劲抽福禄寿《劲抽福禄寿》(英语:The Fortune Buddies;中国大陆译名《爆笑角斗士》)是邵氏制作有限公司与电视广播有限公司合作拍摄的电影,福禄寿系列衍生的电影。由曾志伟、王祖蓝、阮兆祥
  • 寨口站寨口站是北京铁路西北环线上的一个车站,位于北京市海淀区军庄路20号(海淀水泥厂对面)。建于1979年。离三家店站10公里,距沙河站24公里,隶属北京铁路局石景山车务段管辖,现为四等站
  • 克罗伊茨霍赫山坐标:47°3′38.789239″N 9°58′29.637451″E / 47.06077478861°N 9.97489929194°E / 47.06077478861; 9.97489929194克罗伊茨霍赫山(德语:Kreuzjoch),是奥地利的山峰,位于该
  • 2008年中国足球超级联赛2008年金威啤酒中国足球超级联赛是中国足协举行第五届中国足球超级联赛,联赛于2008年3月29日展开,于11月30日结束,本届赛一共有16队参与。另外,由
  • 立花统春立花统春(永禄7年(1564年)-天正18年(1590年)),日本战国时代后期、安土桃山时代的武将,原姓户次,通称次郎兵卫。立花统春的家族出自丰后大名大友宗麟的重臣户次氏一族,而统春之父户次亲行为名将户次鉴连(立花道雪)之养弟,因为亲行在统春二岁时便死去,立花道雪便将统春接来扶养。永禄11年(1568年),筑前的立花山城城主立花鉴载反叛主家大友家,于该年7月遭到大友军镇压败亡,而原本预定获封为立花山城城督的吉弘鉴理于元龟元年(1570年)6月病故,代替其成为城代的鉴理之子吉弘镇信也因为身为宗麟的侧近重臣而