مرتب‌سازی دست‌نشانده

از testwiki
پرش به ناوبری پرش به جستجو

الگو:جعبه اطلاعات الگوریتم

مرتب‌سازی دست‌نشانده الگو:به انگلیسی یک الگوریتم مرتب‌سازی بازگشتی با پیچیدگی زمانی O(nlog3/log1.5)=O(n2.7095...) است؛ بنابراین زمان اجرای الگوریتم در مقایسه با الگوریتم‌های مرتب‌سازی کارآمد، مانند مرتب‌سازی ادغامی، بسیار آهسته بوده و حتی آهسته‌تر از مرتب‌سازی حبابی عمل می‌کند.

این الگوریتم نامش را از کمدی بزن و بکوب سه دست‌نشانده گرفته‌است، که یکی از دست‌نشانده‌ها دو دست‌نشانده دیگر را کتک می‌زند.الگو:نیازمند منبع

پیاده‌سازی

 function 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

پانویس

الگو:پانویس الگو:چپ‌چین

الگو:پایان چپ‌چین

الگو:مرتب‌سازی

الگو:علم کامپیوتر-خرد