Авторы

  • Abdullayev Shaxboz Solijon o‘g‘li,Obidjonova Shalola Bahtiyorjon qizi
    Fargʻona davlat universiteti

DOI:

https://doi.org/10.71337/inlibrary.uz.ijsr.107388

Ключевые слова:

Saralash algoritmi Ma’lumotlarni tartiblash Bubble sort Insertion sort Quick sort Merge sort Algoritm murakkabligi C dasturlash Ma’lumotlar tuzilmasi Samardorlik Tahlil Dasturiy yechim.

Аннотация

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.


background image

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

shalolaobidjonova@gmail.com

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.


background image

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


background image

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:


background image

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.


background image

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 [

https://www.onlinegdb.com

]

9. GeeksForGeeks. (2024). Sorting Algorithms Explained [

https://www.geeksforgeeks.org

]

10. OpenGenus. (2024). Merge Sort vs Quick Sort.

Библиографические ссылки

Cormen, T.H., Leiserson, C.E., Rivest, R.L., & Stein, C. (2009). Introduction to Algorithms. MIT Press.

Knuth, D.E. (1998). The Art of Computer Programming: Sorting and Searching. Addison-Wesley.

Malik, D.S. (2010). C++ Programming: From Problem Analysis to Program Design. Cengage Learning.

Lafore, R. (2002). Data Structures and Algorithms in C++. Sams Publishing.

Sedgewick, R., & Wayne, K. (2011). Algorithms. Addison-Wesley.

Назаров, Р.Ю. (2020). Алгоритмы и структуры данных. Москва: Академия.

Алиев, Ш.Ш. (2021). Zamonaviy algoritmlar nazariyasi. Toshkent: Fan va texnologiya.

OnlineGDB. (2024). C++ Examples [https://www.onlinegdb.com]

GeeksForGeeks. (2024). Sorting Algorithms Explained [https://www.geeksforgeeks.org]

OpenGenus. (2024). Merge Sort vs Quick Sort.