Ինչպես դասակարգել ցուցակն այբբենական կարգով

Բովանդակություն:

Ինչպես դասակարգել ցուցակն այբբենական կարգով
Ինչպես դասակարգել ցուցակն այբբենական կարգով

Video: Ինչպես դասակարգել ցուցակն այբբենական կարգով

Video: Ինչպես դասակարգել ցուցակն այբբենական կարգով
Video: Excel- ի դինամիկ զանգվածի բանաձևեր 2024, Նոյեմբեր
Anonim

Նույն տեսակի տվյալների ցանկացած հաջորդականություն կարող է ներկայացվել որպես ցուցակ: Lուցակները կարելի է պատվիրել և չգրանցել: Վերջին դեպքում տվյալների հետ աշխատելը, ցանկալի արժեքը գտնելու և ցուցակի տարրերին մուտք գործելը որոշակի դժվարություններ են առաջացնում: Լարային փոփոխականների ցանկը սովորաբար դասավորված է այբբենական կարգով: Տեսակավորման շատ մեթոդներ կան, յուրաքանչյուր դեպքում պետք է ընտրեք ամենաօպտիմալ ալգորիթմը:

Ինչպես դասակարգել ցուցակն այբբենական կարգով
Ինչպես դասակարգել ցուցակն այբբենական կարգով

Հրահանգներ

Քայլ 1

Տեսակավորման լավագույն մեթոդը ընտրելիս պետք է հաշվի առնել երկու բան. Տեսակավորման գործողության համար ծախսված ժամանակը և օժանդակ պահեստավորման համար պահանջվող հիշողության ծավալը: Տեսակավորման ալգորիթմները, որոնք լրացուցիչ հիշողություն չեն պահանջում, կոչվում են «տեղում» տեսակ: Իրականացնելու ամենադյուրին մեկը պղպջակների դանդաղ տեսակավորումն է, որը սկանավորում է ցուցակի յուրաքանչյուր զույգ իրեր և փոխում տեղերը ՝ կախված ցանկալի կարգից:

Քայլ 2

Կա ավելի արագ տեսակավորման մեթոդ ՝ ցուցակում գտնելով նվազագույն կամ առավելագույն կետը: Այբբենական կարգի տեսակավորման դեպքում, ամեն անգամ ցուցակը անցնելիս, դուք պետք է գտնեք դրա առավելագույն տարրը. Սա կլինի մի տող, որը սկսվում է այբուբենի սկզբին մոտակա տառով: Գտնվելուց հետո տողը փոխվում է ցուցակի առաջին առաջին կետի հետ առաջին փոխանցման վրա: Listանկի հետագա դիտարկման արդյունքում առաջին տեղը բացառվում է, որոնվում է հաջորդ առավելագույն տարրը, տեղադրվում է երկրորդ տեղում և այլն: Տեսակավորման առավելագույն տարրը գտնելու մեթոդով C ++ - ում տեսակավորող ծրագրի ծածկագիրը. Str Arr [20], cTemp; int N = 20, Max, Pos; for (int i = 0; i <N- 1; i ++) {Max = Arr ; Pos = ես; համար (int j = 0; j <N; j ++) {if (Arr [j] <Max) {Max = Arr [j]; Pos = j; } cTemp = Arr ; Arr = Arr [Pos]; Arr [Pos] = cTemp; }}

Քայլ 3

Ringանկում լարային տվյալների կարգավորման ամենաօպտիմալ լուծումը ներդիրների տեսակն է: Դրա էությունը կայանում է նրանում, որ յուրաքանչյուր ցուցակ անցնելիս կա որոշակի քանակի տարրերի ցուցակի կարգավորված մաս, ուստի քննարկվող հաջորդ տարրը տեղադրվում է ցուցակի համապատասխան տեղում: Տեղադրման տեսակավորման ալգորիթմի C ++ կոդ ՝ Str Arr [20], cTemp; int N = 20; for (int i = 1, j = 0; i <N; i ++) {cTemp = Arr ; j = ես - 1; while (cTemp <Arr [j]) {Arr [j + 1] = Arr [j]; j--; եթե (j <0) ընդմիջում; Arr [j + 1] = cTemp; }}

Խորհուրդ ենք տալիս: