Stooge sort
Stooge sort (Սորտավորում մասերով), ռեկուրսիվ ալգորիթմ ժամանակի բարդությամբ
։ Տվյալ ալգորիթմը համեմատած ուրիշ էֆեկտիվ ալգորիթմերի հետ ինչպիսին են՝ պղպջակային սորտավորումը, միաձուլման սորտավորումը շատ ավելի դանդաղ է աշխատում։
Ալգորիթմի տեսքը
- Եթե վերջնականի արժեքը փոքր է սկզբնականից, ապա փոխել տեղերով։
- Եթե ցանկում կա երեքից ավել արժեք, ապա՝
- <<Stoogesort>> սորտավորել ցանկի սկզբի 2/3-րդ մասը
- <<Stoogesort>> սորտավորել ցանկի վերջի 2/3-րդ մասը
- կրկին <<Stoogesort>> սորտավորել ցանկի սկզբի 2/3-րդ մասը
Ռեալիզացիայի օրինակը
algorithm stoogesort(array L, i = 0, j = length(L)-1)
if L[j] < L[i] then
L[i] ↔ L[j]
if j - i > 1 then
t = (j - i + 1)/3
stoogesort(L, i , j-t)
stoogesort(L, i+t, j )
stoogesort(L, i , j-t)
return L
Օրինակը C լեզվով
void stoogesort(int *item, int left,int right)
{
register int tmp, k;
if(item[left]>item[right])
{
tmp=item[left];
item[left]=item[right];
item[right]=tmp;
}
if((left+1)>=right)
return;
k=(int)((right-left+1)/3);
stoogesort(item,left, right-k);
stoogesort(item, left+k, right);
stoogesort(item, left, right-k);
}
Աղբյուրներ
- Բլաք, Պոլ Ե. «stooge sort». Ալգորիթմերի և տվյալների կառութվածքի բառարան. NIST. Վերցված է 2011 թ․ հունիսի 18-ին.
Արտաքին հղումներ
|
---|
| Տեսություն | Հաշվարկումների տեսության դժվարություն · Մեծ O նշագրում · Ընդհանուր կարգ · Ցանկեր · Կայունություն · Համեմատական տեսակավորում · Հարմարվողական տեսակավորում · Ցանցի տեսակավորում · Ամբող թվերի տեսակավորում |
---|
| Փոխանակային տեսակավորումներ | |
---|
| Ընտրանքային տեսակավորումներ | Ընտրանքային տեսակավորում · Կույտային տեսակավորում · Հարթ տեսակավորումt · Կարտեզիան ծառի տեսակավորում · Մրցակցային տեսակավորում · Պարբերաշրջանային տեսակավորում |
---|
| Մուտքային տեսակավորումներ | |
---|
| Միաձուլման տեսակավորումներ | |
---|
| Վերաբաշխման տեսակավորումներ | Ամերիկյան դրոշի տեսակավորում · Փուչիկի տեսակավորում · Փնջային տեսակավորում · Պայթյունային տեսակավորում · Հաշվող տեսակավորում · Աղավնու բնի տեսակավորում · Proxքարտեզի տեսակավորում · Արմատային տեսակավորում · Փայլող տեսակավորում |
---|
| Միաժամանակյա տեսակավորում | Բիտային տեսակավորող · Սնուցող կենտ-զույգ միաձուլման տեսակավորում |
---|
| Խառնուրդային տեսակավորումներ | Ժամանակի տեսակավորում · Ներքին տեսակավորում · Արտաքին տեսակավորում · Ոչ խառնուրդային տեսակավորում · J տեսակավորում |
---|
| Քվանտային տեսակավորումներ | Սպագետիյի տեսակավորում |
---|
| Այլ | Տոպոլոգիական տեսակավորում · Բլիթային տեսակավորում |
---|
| Ոչ էֆեկտիվ/հումորային տեսակավորումներ | Ճահճային տեսակավորում · Կամակատարի տեսակավորում · Բախտային տեսակավորում |
---|
|