慢速排序

✍ dations ◷ 2025-11-29 12:13:45 #慢速排序

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

相关

  • 关联在概率论和统计学中,相关(Correlation),显示两个随机变量之间线性关系的强度和方向。在统计学中,相关的意义是用来衡量两个变量相对于其相互独立的距离。在这个广义的定义下,有许
  • 异步游戏异步游戏是相对于同步游戏的概念。在同步游戏中,所有玩家共同使用的时间轴,也就是虚拟游戏世界的时间。玩家的动作指令和交互结果都是按虚拟世界的时间为准的,所以同步游戏会有
  • 盖罗尔德湖坐标:47°29′29″N 11°13′17″E / 47.49143°N 11.22148°E / 47.49143; 11.22148盖罗尔德湖(德语:Geroldsee),是德国的湖泊,位于该国东南部,由巴伐利亚州负责管辖,处于加米施-帕
  • 径山道钦径山道钦(714年-792年),唐代牛头宗径山派初祖,鹤林玄素禅师法嗣。吴郡昆山(今江苏昆山市)人,俗姓朱。又作法钦,径山钦,国一禅师;世人敬称“功德山”。道钦是唐代著名禅师,禅宗四祖旁出
  • 繁文缛礼繁文缛礼,又称“红带”(英语:Red tape),是一个管理学术语,其初始来源并不明确。通常指官僚体系中(尤其是政府或大型企业)的官僚文牍主义,即过分严格死板的规章制度和对其的遵从。“红
  • CiteSeerxCiteSeerx(最初称为CiteSeer)是计算机和信息科学领域的科技和学术论文的公共搜索引擎和数字图书馆。CiteSeer被认为是学术搜索工具(例如Google学术搜索和微软学术搜索)的前身。C
  • 微光海洋《微光海洋》是中国大陆90后男歌手周深为手游《王者荣耀》中的英雄大乔和孙策演唱的英雄主打歌。歌曲一经发表便登上QQ音乐飙升榜首位,并成为由你音乐榜2020年第31期游戏类音
  • 张大卫张大卫(1952年10月-),辽宁抚顺人,中华人民共和国政治人物。1968年12月参加工作,1993年2月加入中国共产党。郑州市回民中学和河南财经学院(今河南财经政法大学)毕业,中国人民大学商学院工业经济系企业管理专业在职研究生学历。历任河南省计委、计经委办公室、重工处、工业处秘书、主任科员,河南省计经委工业处副处长,河南省计经委、计委工业处处长,河南省轻工总会副会长、党委委员,河南省发展计划委员会副主任、党组成员,主任、党组书记,河南省发展和改革委员会主任、党组书记等职。2006年1月当选河南省人民政府
  • ISO/IEC 2022ISO 2022,全称ISO/IEC 2022,由国际标准化组织(ISO)及国际电工委员会(IEC)联合制定,是一个使用7位或8位编码表示各种语言文字的通用技术规范。特别以东亚语言:汉语文字、日语文字或朝鲜文字的编码方法著称。ISO 2022等同于欧洲标准组织(ECMA)的ECMA-35。中国国标GB 2312、日本工业规格JIS X 0202(旧称JIS C 6228)及韩国工业规格KS X 1004(旧称KS C 5620)均遵从ISO 2022。早期计算机的字符编码基本上都是6位。所以早期计算机的整
  • 汉斯·亚克塞尔·冯·菲尔逊汉斯·亚克塞尔·冯·菲尔逊伯爵(瑞典语:Hans Axel von Fersen,瑞典语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Gentium Alternative","TITUS Cyberbit Basic","Arial Unicode MS","IPAPANNEW"