Junior
Кайсы сорттоо алгоритмдерин билесиз?
sobes.tech AI
AIден жооп
Негізгі сұрыптау алгоритмдері:
- Bubble Sort (Шаршы сорт): Жай, бірақ тиімді емес алгоритм, бірнеше рет тізім бойынша өтіп, көршілес элементтерді орындарын ауыстырады, егер олар дұрыс тәртіпте болмаса.
- Selection Sort (Таңдау сорт): Тізімнің сұрыпталмаған бөлігінен ең кішкентай (немесе ең үлкен) элементті табады және оны басына орналастырады.
- Insertion Sort (Қою сорт): Біртіндеп сұрыпталған тізімді құрады, әр жаңа элементті сұрыпталған бөлікке қажетті орынға орналастырады.
- Merge Sort (Қосылу сорт): Рекурсивті алгоритм, ол тізімді кіші тізімдерге бөледі, оларды сұрыптайды және қайта біріктіреді.
- Quick Sort (Жылдам сорт): "Бөліп және биле" әдісі, ол негізгі элементті (pivot) таңдайды және элементтерді оны кішірек және үлкен деп бөледі. Содан кейін рекурсивті түрде қолданады.
- Shell Sort (Shell сорт): Үлкен қашықтықтағы салыстыруларды пайдаланып, қою сортты жақсартады.
- Heap Sort (Құмдастыру сорт): "Құмдастыру" құрылымын пайдаланады (heap) тиімді сұрыптау үшін.
Сонымен қатар, сирек қолданылатын, бірақ кей жағдайларда тиімді алгоритмдер бар, мысалы санау сорттау (Counting Sort), радиалды сорттау (Radix Sort), блоктық сорттау (Bucket Sort).
Негізгі алгоритмдердің орындалу уақыты (орташа):
| Сұрыптау алгоритмі | Орташа орындалу уақыты |
|---|---|
| Bubble Sort | O(n²) |
| Selection Sort | O(n²) |
| Insertion Sort | O(n²) |
| Merge Sort | O(n log n) |
| Quick Sort | O(n log n) |
| Shell Sort | Қадамға байланысты |
| Heap Sort | O(n log n) |
Python-да жылдам сұрыптау мысалы:
def quicksort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2] # Пивот таңдау
left = [x for x in arr if x < pivot] # Кіші элементтер
middle = [x for x in arr if x == pivot] # Тең элементтер
right = [x for x in arr if x > pivot] # Үлкен элементтер
return quicksort(left) + middle + quicksort(right) # Рекурсивті сұрыптау және біріктіру