INTERNATIONAL JOURNAL OF SCIENTIFIC RESEARCHERS
ISSN: 3030-332X Impact factor: 8,293
Volume 11, issue 1, April 2025
https://wordlyknowledge.uz/index.php/IJSR
worldly knowledge
Index:
google scholar, research gate, research bib, zenodo, open aire.
https://scholar.google.com/scholar?hl=ru&as_sdt=0%2C5&q=wosjournals.com&btnG
https://www.researchgate.net/profile/Worldly-Knowledge
https://journalseeker.researchbib.com/view/issn/3030-332X
601
Abdullayev Shaxboz Solijon o‘g‘li
FarDU Axborot texnologiyalari kafedrasi katta o’qituvchisi
shaxbozfardu2023@gmail.com
ORCID ID 0000-0001-9382-732X
Obidjonova Shalola Bahtiyorjon qizi
Fargʻona davlat universiteti talabasi
SARALASH ALGORITMLARI
Annotatsiya:
Ushbu maqolada saralash algoritmlarining asosiy turlari, ularning ishlash
prinsiplari va samaradorligi tahlil qilinadi. Maqolada har bir algoritmning afzalliklari va
kamchiliklari ko‘rib chiqilib, ularning turli muammolarda qanday qo‘llanilishi mumkinligi
yoritiladi. Shuningdek, maqolada turli saralash algoritmlarining vaqt va xotira murakkabliklari
solishtiriladi hamda C++ dasturlash tilida amaliy misollar orqali tushuntiriladi.
Kalit so‘zlar
: Saralash algoritmi, Ma’lumotlarni tartiblash, Bubble sort, Insertion sort, Quick
sort, Merge sort, Algoritm murakkabligi, C++ dasturlash, Ma’lumotlar tuzilmasi, Samardorlik,
Tahlil, Dasturiy yechim.
Аннотация:
В данной статье рассматриваются основные виды алгоритмов сортировки,
принципы их работы и эффективность. Анализируются преимущества и недостатки
каждого алгоритма, а также их применимость в различных задачах. Также проводится
сравнительный анализ временной и пространственной сложности алгоритмов сортировки
с практическими примерами на языке программирования C++.
Ключевые слова:
Алгоритм сортировки, Сортировка данных, Пузырьковая сортировка,
Сортировка вставками, Быстрая сортировка, Сортировка слиянием, Сложность алгоритма,
Программирование на C++, Структура данных, Эффективность, Анализ, Программное
решение.
Abstract:
This article examines the main types of sorting algorithms, their operating principles,
and efficiency. The advantages and disadvantages of each algorithm are analyzed, along with
their applicability to various problems. A comparative analysis of time and space complexity is
also provided, with practical examples in C++ programming language.
Keywords:
Sorting algorithm, Data sorting, Bubble sort, Insertion sort, Quick sort, Merge sort,
Algorithm complexity, C++ programming, Data structure, Efficiency, Analysis, Software
solution.
Ma’lumotlar bilan ishlashda ularni tartibga solish muhim o‘rin tutadi. Har qanday ma’lumotlar
bazasida yoki dasturiy ta’minotda ma’lumotlar to‘g‘ri tartibda joylashishi qidiruv jarayonlarini
tezlashtiradi va tizim samaradorligini oshiradi. Shu sababli, saralash (tartiblash) algoritmlari
informatikada eng ko‘p qo‘llaniladigan muhim vositalardan biridir. Bugungi kunda saralash
algoritmlarining turli xil turlari mavjud bo‘lib, ularning har biri ma’lum holatlarda samarali
natija beradi.
INTERNATIONAL JOURNAL OF SCIENTIFIC RESEARCHERS
ISSN: 3030-332X Impact factor: 8,293
Volume 11, issue 1, April 2025
https://wordlyknowledge.uz/index.php/IJSR
worldly knowledge
Index:
google scholar, research gate, research bib, zenodo, open aire.
https://scholar.google.com/scholar?hl=ru&as_sdt=0%2C5&q=wosjournals.com&btnG
https://www.researchgate.net/profile/Worldly-Knowledge
https://journalseeker.researchbib.com/view/issn/3030-332X
602
Ma’lumotlarni tartiblash ehtiyoji dasturiy ta’minotlarda tez-tez uchraydi. Ayniqsa
foydalanuvchiga qulay interfeys yaratishda yoki ma’lumotlar ustida tezkor izlash, tahlil va
hisobot tayyorlash kabi vazifalarda saralash algoritmlarining roli beqiyosdir. Har bir algoritm
o‘zining tuzilishi, ishlash prinsipi va samaradorligi bilan farq qiladi. Ular orasida eng sodda va
ko‘p o‘rgatiladigan usullardan biri bu —
Bubble Sort
, ya’ni pufakcha saralash algoritmidir.
Bubble Sort algoritmi juda sodda mantiqqa ega: massiv ichidagi ketma-ket elementlar
birin-ketin solishtiriladi va agar ular noto‘g‘ri tartibda bo‘lsa, joyi almashtiriladi. Bu jarayon
butun massiv bo‘ylab takrorlanadi va har yurishda eng katta qiymat massiv oxiriga
“pufakchadek” ko‘tariladi. Bu hodisa algoritmga o‘ziga xos nom —
pufakcha saralash
—
berilishiga sabab bo‘lgan. Masalan, 5 ta elementdan iborat massivda, birinchi yurishda eng katta
element oxirgi pozitsiyaga chiqadi, ikkinchi yurishda undan keyingi eng katta qiymat so‘nggi-1
pozitsiyaga, va hokazo.
Bu algoritmning soddaligi uni dasturlashni endi o‘rganayotganlar uchun juda qulay qiladi.
Unda rekursiya, murakkab ma’lumotlar tuzilmalari yoki yondosh algoritmlar mavjud emas. Shu
bois, Bubble Sort ko‘pincha algoritmika fanini o‘rganishda boshlang‘ich nuqta sifatida ishlatiladi.
Biroq, bu algoritmning samaradorligi unchalik yuqori emas: uning vaqt murakkabligi
O(n2)O(n^2)O(n2) bo‘lib, bu har bir element boshqa barcha elementlar bilan taqqoslanishini
anglatadi. Bu esa ma’lumotlar hajmi ortgan sari jarayonning keskin sekinlashishiga olib keladi.
Ayniqsa real vaqt tizimlari yoki katta hajmdagi ma’lumotlar bilan ishlaydigan
platformalarda Bubble Sortning qo‘llanishi maqsadga muvofiq emas. Shu sababli, u ko‘proq
o‘quv jarayonlarida, kichik va oldindan saralangan massivlar ustida ishlov berish kerak
bo‘lganda qo‘llaniladi. Ba’zi optimallashtirilgan versiyalarida esa, agar bir yurishda birorta ham
almashish ro‘y bermasa, algoritm saralashni tugatadi, bu esa kamida biroz tezlikni oshirishga
yordam beradi.
Bubble Sort algoritmi hech qanday qo‘shimcha xotira sarflamaydi, ya’ni
in-place
saralash algoritmi hisoblanadi. Bu xususiyati tufayli ba’zi xotiraga cheklov qo‘yilgan tizimlarda
uni ishlatish maqsadga muvofiq bo‘lishi mumkin. Algoritm stabil hisoblanadi — ya’ni teng
qiymatga ega bo‘lgan elementlar saralashdan keyin ham o‘z o‘rnini saqlab qoladi. Bu esa ayrim
hollarda — masalan, yozuvlar sanasiga qarab saralash, lekin nomlar tartibini saqlab qolish kerak
bo‘lganda — muhim ahamiyat kasb etadi.
Umuman olganda, Bubble Sort — bu sodda, tushunarli, lekin samaradorligi past algoritm
bo‘lib, uni asosiy saralash algoritmlaridan biri sifatida o‘rganish, keyinchalik samaraliroq
algoritmlarning mantiqiy asoslarini anglashda yordam beradi. Keyingi bo‘limlarda biz boshqa
algoritmlar — masalan, Insertion Sort, Merge Sort va Quick Sort — larni ham ko‘rib chiqamiz
va ularni Bubble Sort bilan taqqoslaymiz.
Saralash algoritmlari orasida yana bir mashhur va nisbatan samaraliroq usul bu —
Insertion Sort
, ya’ni qo‘yish orqali saralashdir. Bu algoritm insonning kartalarni tartiblashdagi
tabiiy harakatiga juda o‘xshaydi: har bir yangi karta mavjud tartiblangan qism ichida to‘g‘ri
joyiga joylashtiriladi. Xuddi shunday, Insertion Sort ham massivning har bir elementini
bosqichma-bosqich tartiblangan qismga qo‘shib boradi.
Algoritm quyidagicha ishlaydi: dastlab massivning birinchi elementi saralangan deb
olinadi. Keyin ikkinchi element olinadi va birinchi element bilan solishtiriladi. Agar kerak bo‘lsa,
u joyiga qo‘yiladi. Keyin uchinchi element olinadi va o‘zidan oldingi ikkita bilan solishtirilib,
to‘g‘ri pozitsiyaga joylashtiriladi. Bu jarayon massiv oxirigacha davom etadi. Natijada, har bir
yurishda saralangan qismlar soni ortib boradi va yakunda butun massiv tartiblanadi.
Insertion Sort algoritmi kichik hajmdagi massivlar uchun juda qulay va samarali
hisoblanadi. Ayniqsa, agar massiv oldindan qisman saralangan bo‘lsa, u holda bu algoritm
INTERNATIONAL JOURNAL OF SCIENTIFIC RESEARCHERS
ISSN: 3030-332X Impact factor: 8,293
Volume 11, issue 1, April 2025
https://wordlyknowledge.uz/index.php/IJSR
worldly knowledge
Index:
google scholar, research gate, research bib, zenodo, open aire.
https://scholar.google.com/scholar?hl=ru&as_sdt=0%2C5&q=wosjournals.com&btnG
https://www.researchgate.net/profile/Worldly-Knowledge
https://journalseeker.researchbib.com/view/issn/3030-332X
603
yuqori tezlikda ishlaydi. Uning eng yaxshi holatdagi vaqt murakkabligi O(n), eng yomon holatda
esa O(n
2
) ga teng. Eng yaxshi holat odatda massiv allaqachon tartiblangan holatda bo‘lsa yuz
beradi — bunda har bir yangi element faqat bitta solishtirish orqali joyiga qo‘yiladi.
Insertion Sort algoritmining yana bir muhim jihati shundaki, u ham
in-place
algoritm
bo‘lib, qo‘shimcha xotira talab qilmaydi. Shuningdek, u
stabil
algoritm hisoblanadi, ya’ni bir xil
qiymatga ega elementlar o‘zaro tartibini saqlab qoladi. Bu, ayniqsa, kompozit obyektlar bilan
ishlaganda, masalan — talabalar ro‘yxatini ballar bo‘yicha saralashda — ularning familiya
tartibini buzmasdan saralashni ta’minlaydi.
Katta hajmdagi ma’lumotlar ustida ishlaganda samarali natija beradigan algoritmlardan
biri bu —
Merge Sort
, ya’ni birlashtirish orqali saralashdir. Bu algoritm “bo‘lish va yengish”
(Divide and Conquer) tamoyiliga asoslanadi. Ya’ni, massiv avval kichik qismlarga bo‘linadi, har
bir kichik qism alohida tartiblanadi va oxirida barcha qismalar birlashtiriladi.
Merge Sort ishlash jarayoni quyidagicha: massiv teng ikkiga bo‘linadi, har bir yarim qism
yana bo‘linadi va bu jarayon bitta elementli bo‘laklargacha davom etadi. Shundan so‘ng, bu
elementlar o‘zaro solishtirilib, birlashtiriladi va asta-sekin katta tartiblangan bo‘laklar hosil
qilinadi. Oxir-oqibat, butun massiv to‘liq tartiblangan holda birlashtiriladi. Bu usul rekursiv
yondashuvga tayanadi va kuchli nazorat bilan har bir bo‘lak to‘g‘ri joylashtiriladi.
Merge Sort algoritmining asosiy afzalligi — uning har qanday holatda ham yuqori
samaradorlikda ishlashi. Vaqt murakkabligi doimiy O(nlogn) ga teng bo‘lib, bu ko‘pchilik
boshqa saralash algoritmlaridan ustunligini ko‘rsatadi. U eng yomon holatda ham bu
murakkablikdan oshmaydi, ya’ni turg‘un ishlash tezligiga ega. Bu jihati uni yirik va murakkab
tizimlarda ishonchli algoritmga aylantiradi.
Saralash algoritmlari orasida eng mashhurlaridan biri bu —
Quick Sort
, ya’ni tez
saralash algoritmidir. Ushbu algoritm ham “bo‘lish va yengish” (Divide and Conquer)
tamoyiliga asoslanadi, biroq Merge Sortdan farqli o‘laroq, u qo‘shimcha xotiraga kamroq ehtiyoj
sezadi va amaliyotda ko‘pincha undan tezroq natijalar beradi. Quick Sort algoritmi samaradorligi,
oddiy tuzilmasi va yuqori ishlash tezligi bilan ajralib turadi.
Quick Sort algoritmi quyidagicha ishlaydi: massivdan bitta element —
pivot
(tayanch)
sifatida tanlanadi. So‘ng massiv ikkita qismga ajratiladi: pivotdan kichik bo‘lgan elementlar chap
tomonga, katta bo‘lganlar esa o‘ng tomonga joylashtiriladi. Shu tarzda hosil bo‘lgan kichik
massivlar rekursiv tarzda qayta saralanadi. Oxir-oqibat, barcha kichik qismlar to‘liq saralanadi
va natijada umumiy tartiblangan massiv hosil bo‘ladi.
Quyida C++ dasturlash tilida yozilgan Quick Sort algoritmi namunasini ko‘rish mumkin:
INTERNATIONAL JOURNAL OF SCIENTIFIC RESEARCHERS
ISSN: 3030-332X Impact factor: 8,293
Volume 11, issue 1, April 2025
https://wordlyknowledge.uz/index.php/IJSR
worldly knowledge
Index:
google scholar, research gate, research bib, zenodo, open aire.
https://scholar.google.com/scholar?hl=ru&as_sdt=0%2C5&q=wosjournals.com&btnG
https://www.researchgate.net/profile/Worldly-Knowledge
https://journalseeker.researchbib.com/view/issn/3030-332X
604
Xulosa
Mazkur maqolada saralash algoritmlarining nazariy asoslari va amaliy qo‘llanilish
xususiyatlari tahlil qilindi. Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort va
Heap Sort algoritmlarining ishlash prinsipi, vaqt va xotira murakkabligi, hamda samaradorlik
darajasi o‘rganildi. Har bir algoritmning afzalliklari va kamchiliklari aniqlanib, ular orasidagi
farqlar taqqoslov yondashuv orqali ko‘rsatib berildi.
Tadqiqotlar shuni ko‘rsatadiki, kichik hajmdagi ma’lumotlar bilan ishlaganda oddiy
algoritmlar (Bubble, Insertion) yetarli bo‘lishi mumkin, ammo katta hajmdagi ma’lumotlar
uchun Quick Sort va Merge Sort kabi algoritmlar yuqori samaradorlikni ta’minlaydi. Heap Sort
esa muvozanatli ishlash tezligi va barqarorligi bilan ajralib turadi.
Shuningdek, maqolada algoritmlarning amaliy dasturlashdagi o‘rni va ular bilan
ishlashda e’tibor berilishi lozim bo‘lgan jihatlar haqida fikr yuritildi. Kelgusida ushbu mavzuni
yanada chuqurlashtirib, algoritmlarni vizual ko‘rinishda taqqoslash, ularni grafik usullar bilan
tahlil qilish orqali o‘rganishni kengaytirish mumkin.
Adabiyotlar ro‘yxati:
1. Cormen, T.H., Leiserson, C.E., Rivest, R.L., & Stein, C. (2009). Introduction to Algorithms.
MIT Press.
INTERNATIONAL JOURNAL OF SCIENTIFIC RESEARCHERS
ISSN: 3030-332X Impact factor: 8,293
Volume 11, issue 1, April 2025
https://wordlyknowledge.uz/index.php/IJSR
worldly knowledge
Index:
google scholar, research gate, research bib, zenodo, open aire.
https://scholar.google.com/scholar?hl=ru&as_sdt=0%2C5&q=wosjournals.com&btnG
https://www.researchgate.net/profile/Worldly-Knowledge
https://journalseeker.researchbib.com/view/issn/3030-332X
605
2. Knuth, D.E. (1998). The Art of Computer Programming: Sorting and Searching. Addison-
Wesley.
3. Malik, D.S. (2010). C++ Programming: From Problem Analysis to Program Design.
Cengage Learning.
4. Lafore, R. (2002). Data Structures and Algorithms in C++. Sams Publishing.
5. Sedgewick, R., & Wayne, K. (2011). Algorithms. Addison-Wesley.
6. Назаров, Р.Ю. (2020). Алгоритмы и структуры данных. Москва: Академия.
7. Алиев, Ш.Ш. (2021). Zamonaviy algoritmlar nazariyasi. Toshkent: Fan va texnologiya.
8. OnlineGDB. (2024). C++ Examples [
9. GeeksForGeeks. (2024). Sorting Algorithms Explained [
10. OpenGenus. (2024). Merge Sort vs Quick Sort.