Junior — Middle
Ի՞նչ տեսակների դասավորություններ եք գիտեք և ինչպիսի դժվարություններ ունեն ժամանակի և հիշողության առումով։
sobes.tech AI
Պատասխան AI-ից
Կան բազմաթիվ դասակարգման ալգորիթմներ, ահա հիմնականները՝ նրանց ժամանակային և տարածքային բարդությամբ.
-
Բաբլ սորտ (Bubble Sort)
- Ժամանակը՝ O(n²) ամենավատ և միջին դեպքերում
- Հիշողությունը՝ O(1) (տեղում դասակարգում)
-
Ներմուծման դասակարգում (Insertion Sort)
- Ժամանակը՝ O(n²) ամենավատ դեպքերում, O(n) ամենալավում (մոտեցված դասակարգված զանգված)
- Հիշողությունը՝ O(1)
-
Ընտրության դասակարգում (Selection Sort)
- Ժամանակը՝ O(n²) բոլոր դեպքերում
- Հիշողությունը՝ O(1)
-
Միասնական դասակարգում (Merge Sort)
- Ժամանակը՝ O(n log n) բոլոր դեպքերում
- Հիշողությունը՝ O(n) (պահանջում է լրացուցիչ հիշողություն միացման համար)
-
Արագ դասակարգում (Quick Sort)
- Ժամանակը՝ միջինում O(n log n), ամենավատ դեպքում O(n²) (քիչ)
- Հիշողությունը՝ O(log n) (ռեկուրսիվ պատյան)
-
Հավասարեցման դասակարգում (Heap Sort)
- Ժամանակը՝ O(n log n) բոլոր դեպքերում
- Հիշողությունը՝ O(1)
-
Timsort — հիբրիդային դասակարգման ալգորիթմ, օգտագործվում է Python և Java-ում
- Ժամանակը՝ միջինում և ամենավատ դեպքերում՝ O(n log n)
- Հիշողությունը՝ O(n)
Ալգորիթմի ընտրությունը կախված է տվյալների չափից, հիշողության պահանջներից և դասակարգման կայունությունից (պահպանում է արդարացված տարրերի կարգը): Օրինակ, Merge Sort-ը կայուն է, Quick Sort-ը սովորաբար ավելի արագ է, բայց ոչ կայուն։