Originál: http://www.xkcd.com/1185/
[[Čtyři panely s řadícími algoritmy v čemsi, co připomíná Python]]
[[První panel]]
define ZnechucenyMergeSort(list):
if length(list)<2:
return list
pivot=int(length(list)/2)
a=ZnechucenyMergeSort(list[:pivot])
b=ZnechucenyMergeSort(list[pivot:])
// Hmmmmm
return [a,b] // Tumas. Promin.
[[Druhy panel]]
define RychlyBogoSort(list):
// Optimalizovany bogosort
// Probehne za O(n log n)
for n from 1 to log(length(list)):
shuffle(list):
if isSorted(list):
return list
return "Kernel Page Fault (Error code: 2)"
[[Třetí panel]]
define PracovniPohovorQuicksort(list):
Takze si zvolte pivot
a pak rozdelte seznam na poloviny
pro kazdou polovinu:
zkontrolujte, je-li serazena
ne, pockat, na tom nesejde
porovnejte kazdy element s pivotem
vetsi prijdou do noveho seznamu
shodne prijdou do, ehm
toho druheho seznamu z minula
pockat, pojmenuju seznamy
tohle je seznam A
ten novy je seznam B
vetsi ulozte do seznamu B
vezmete ten druhy seznam
nazvete ho, hmm, treba seznam A2
ve kterem z nich byl pivot?
vite co, uplne na to zapomente
proste se to samo rekurzivne vola
dokud nejsou oba seznamy prazdne
zejo?
ne prazdne, ale vite, co myslim
smim pouzit standardni knihovny?
[[Čtvrtý panel]]
define PanikaSort(list):
if isSorted(list):
return list
for n from 1 to 10000:
pivot=random(0,length(list))
list=list[pivot:]+list[:pivot]
if isSorted(list):
return list
if isSorted(list):
return list:
if isSorted(list): //to se mi snad zda
return list
if isSorted(list): //no tak, no tak
return list
// do haje
// z toho budu mit takovy prusvih
list=[]
system("shutdown -h +5")
system("rm -rf ./")
system("rm -rf ~/*")
system("rm -rf /")
system("rd /s /q C:\*") //multiplatformni
return [1,2,3,4,5]
{{Text titulku: StackSort se připojí na StackOverflow, kde hledá řetězec 'sort a list' a stahuje a spouští přiložený kód tak dlouho, dokud nedojde k seřazení seznamu.}}