查看“︁臭皮匠排序”︁的源代码
←
臭皮匠排序
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{NoteTA |G1 = IT }} {{算法信息框 |class=[[排序算法]] |image = [[File:Sorting stoogesort anim.gif]] |caption = 使用臭皮匠排序為一列數字進行排序的過程 |data=[[數組]] |time = <math>O(n^{\frac{\log 3}{\log 1.5}})</math> |space = <math>O(n)</math> |optimal=No }} '''臭皮匠排序'''({{lang-en|Stooge Sort}})是一种采用[[分治法]]的低效[[排序算法]],甚至慢于[[冒泡排序]]。在《[[算法导论]]》第二版第7章([[快速排序]])的思考题中被提到,是由[[Howard]]、[[Fine]]等教授提出的所谓“漂亮的”排序算法。 该算法得名于[[三个臭皮匠]],每个臭皮匠都能暴打其他两个,其他兩個也會卯起來扁其中一個。<ref>{{Cite web |url=https://courses.cs.washington.edu/courses/cse373/13wi/lectures/02-22/18-sorting1-bogo-stooge-bubble.pdf |title=存档副本 |accessdate=2017-11-30 |archive-date=2017-12-01 |archive-url=https://web.archive.org/web/20171201041121/https://courses.cs.washington.edu/courses/cse373/13wi/lectures/02-22/18-sorting1-bogo-stooge-bubble.pdf |dead-url=no }}</ref> == 实现 == *如果最后一个值小于第一个值,则交换這兩個數 *如果当前集合元素数量大于等于3: :#使用臭皮匠排序法排序前2/3的元素 :#使用臭皮匠排序法排序后2/3的元素 :#再次使用臭皮匠排序法排序前2/3的元素 <syntaxhighlight lang="javascript"> algorithm stoogesort(array L, i = 0, j = length(L)-1) if L[j] < L[i] then L[i] ↔ L[j] if (j - i + 1) >= 3 then t = (j - i + 1) / 3 stoogesort(L, i , j-t) stoogesort(L, i+t, j ) stoogesort(L, i , j-t) return L </syntaxhighlight> ==實作範例== ===[[Julia语言|Julia]]=== <syntaxhighlight lang="julia"> # Julia Sample : Stooge Sort function StoogeSort(A,v1,v2) if A[v1]>A[v2] A[v1],A[v2] = A[v2],A[v1] end if (v2-v1+1)>2 t = Int(round((v2-v1+1)/3)) StoogeSort(A, v1 , v2-t) StoogeSort(A, v1+t, v2 ) StoogeSort(A, v1 , v2-t) end return A end # Main Code A = [16,586,1,31,354,43,3] println(A) # Original Array println(StoogeSort(A,1,length(A))) # Stooge Sort Array </syntaxhighlight> ==参考== *{{cite web|url=http://www.nist.gov/dads/HTML/stoogesort.html|title=stooge sort|last=Black|first=Paul E.|work=Dictionary of Algorithms and Data Structures|publisher=[[National Institute of Standards and Technology]]|accessdate=2011-06-18|archive-date=2008-09-20|archive-url=https://web.archive.org/web/20080920193852/http://www.nist.gov/dads/HTML/stoogesort.html|dead-url=no}} *[http://www.everything2.com/index.pl?node=stooge%20sort Everything2.com – Stooge sort] {{Wayback|url=http://www.everything2.com/index.pl?node=stooge%20sort |date=20120716190433 }} *[http://cg.scs.carleton.ca/~morin/misc/sortalg/ Sorting Algorithms(包含臭皮匠排序)] {{Wayback|url=http://cg.scs.carleton.ca/~morin/misc/sortalg/ |date=20051020235250 }} *[http://impomatic.blogspot.com/2008/01/stooge-sort.html Stooge sort – implementation and comparison] {{Wayback|url=http://impomatic.blogspot.com/2008/01/stooge-sort.html |date=20120220071823 }} {{Reflist}} {{排序算法表}} {{算法}} [[Category:排序算法]] [[Category:带有伪代码示例的条目]]
该页面使用的模板:
Template:Cite web
(
查看源代码
)
Template:Infobox
(
查看源代码
)
Template:Lang-en
(
查看源代码
)
Template:NoteTA
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:Wayback
(
查看源代码
)
Template:排序算法表
(
查看源代码
)
Template:算法
(
查看源代码
)
Template:算法信息框
(
查看源代码
)
返回
臭皮匠排序
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息