Saralash algoritmi

**Saralash** – tartiblash (Sorting Algorithms) deb, berilgan obyektlar ketma-ketligini maʼlum mantiqiy tartibda qayta joylashtirish jarayoniga aytiladi. Saralash bir necha koʻrsatkichlarga bogʻliq boʻlishi mumkin. Misol uchun maktab jurnalida oʻquvchilar familiyasi alifbo tartibiga koʻra saralangan boʻladi.
Masalan bizga sonlar qatori berilgan: 8, 23, 0, −50, 100
Bu qatorni kichigidan kattasiga qarab yoki kattasidan kichigiga qarab saralashimiz mumkin. Bu saralashni amalga oshirish jarayoni **Saralash algoritmi** deyiladi.
Saralash jarayoni taqqoslashga asoslangan jarayon hisoblanadi.
Yuqoridagi sonli qatorni kichigidan kattasiga qarab tartiblaganimizda −50, 0, 8, 23, 100 koʻrinishiga keladi. Biz buni qanday amalga oshirdik. Bunda har xil usuldan foydalanish mumkin va mana shu algoritm turlaridir
Biz algoritmlardan bittasidan foydalanib yuqoridagi sonli qatorni tartiblaymiz. Avval, sonli qatordan eng kichigini topamiz va uni roʻyxatnin g boshiga qoʻyamiz. Har bir sonni boshqasi bilan solishtirib chiqamiz. Agar son oʻzidan keyingi sondan kichik boʻlsa, son shu joyida qoladi, agar katta boʻlsa sonlarning oʻrnini almashtiramiz.

Saralash asosan roʻyxat, massiv elementlarida amalga oshiriladi. Masalan sizning sinfingizda 5 ta oʻquvchi bor. Ularni familiyasini alifbo tartibida saralash mumkin.

Sonlar berilishi: 23, 54, 3, 22, 1, 45;

Eng kattasini boshiga oʻtkazamiz: 23, 3, 22, 1, 45, 54;(54 soni har bir son bilan solishtirilib eng katta ekani aniqlandi, 45 esa oʻz oʻrnida turipti)
Shu tartibni davom ettiramiz: 3, 22, 1, 23, 45, 54;(23 undan keyinda turuvchi eng katta son)
Yuqoridagi amalni yana davom ettiramiz: 3, 1, 22, 23, 45, 54;(22 esa davomchi)
Oxirgi marta almashtirishimiz quyidagi natijani beradi: 1, 3, 22, 23, 45, 54;(1 eng kichigi)
Saralangan tartib quyidagi holatga keldi: 1, 3, 22, 23, 45, 54;

Bizning miyamiz oʻzi optimal deb bilgan yoʻnalishdan ketadi va biz uchun faqat bitta saralash algoritmi mavjud. Ammo dasturlashda bunday deb boʻlmaydi. Dasturlashga talab ortib, bu soha rivojlanib borgani sari unda bir qator sohalardagi kabi tezlikni oshirish muammosi paydo boʻladi. Chunki ilk kompyuter tizimlarida kompyuter tizimining 30% tezligi, operativ xotirasi saralashga sarflanar edi. Shu oʻrinda savol tugʻiladi, operatsion tizimlarda ham saralashdan foydalaniladimi? Albatta ha! Fikrimiz isbotini hozirda keng foydalaniladigan Total Commander dasturi isbotlaydi. Unda bir necha xil saralash mavjud: fayl turi, nomi, oʻzgartirilgan sanasi va oʻlchami. Har birini oʻsish yoki kamayish tartibida saralash mumkin. Ha aytgancha, hozirgi tizimlar 30% emas anchagina kamroq tezlik va xotira sarflashadi. Chunki tezlik masalasi tobora yuqori choʻqqiga chiqayotgan va ishlanayotgan maʼlumotlar oʻlchami oshib borayotgan bir paytda sekin ishlovchi algoritmlardan foydalanish kulguli. Maʼlumotlar oʻlchamlari esa juda katta, shu sababli ularni aniq va tez saralashga ehtiyoj mavjud. Buni amalga oshirish uchun esa yangi algoritmlarga ehtiyoj tugʻila boshladi. Buni yechimi sifatida bir necha turdagi algoritmlardan foydalaniladi.

## Saralash algoritmi turlari

* Bubble sort
* Selection sort
* Insertion sort
* Quick sort
* Merge sort

## Manbalar
https://en.wikipedia.org/wiki/Sorting_algorithm
https://www.texnoman.uz/post/2-saralash-algoritmlari.html
https://www.geeksforgeeks.org/sorting-algorithms/
https://www.programiz.com/dsa/sorting-algorithm