Authors

  • Onarqulov Maqsadjon Karimberdiyevich
  • Abdulhafizov Ibrohim Husanjon o’g’li

Author Biographies

  • Onarqulov Maqsadjon Karimberdiyevich

    Farg’ona davlat universiteti amaliy matematika va

    informatika kafedrasi dotsenti (PhD)

    maxmaqsad@gmail.com

  • Abdulhafizov Ibrohim Husanjon o’g’li

    Farg’ona davlat universiteti 2-kurs talabasi

    ibrohimabdulhafizov33@gmail.com

DOI:

https://doi.org/10.71337/inlibrary.uz.mead.117033

Keywords:

bucket sort saralash algoritmi taqsimlash orqali saralash chiziqli vaqt murakkabligi ma’lumotlar tuzilmalari algoritm murakkabligi bin sort uniform taqsimot vaqt murakkabligi xotira murakkabligi

Abstract

Ushbu maqola Bucket Sort (chelakli saralash) algoritmi haqida batafsil ma’lumot berishga qaratilgan. Bucket Sort - bu massiv elementlarini bir nechta bucket (chelak) yoki guruhlarga taqsimlash orqali ishlaydigan saralash algoritmidir. Har bir chelak alohida saralanadi, so’ngra chelaklardagi saralangan elementlar birlashtirilib, yakuniy tartiblangan massiv hosil qilinadi. Maqolada algoritmning asosiy tamoyillari, ishlash prinsipi, murakkablik tahlili, afzalliklari, kamchiliklari va amaliy qo’llanilish sohalari ko’rib chiqiladi. Shuningdek, algoritmning C# dasturlash tilidagi amaliy namunasi keltiriladi.

background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

223

BUCKET SORT ALGORITMI

Onarqulov Maqsadjon Karimberdiyevich

Farg’ona davlat universiteti amaliy matematika va

informatika kafedrasi dotsenti (PhD)

maxmaqsad@gmail.com

Abdulhafizov Ibrohim Husanjon o’g’li

Farg’ona davlat universiteti 2-kurs talabasi

ibrohimabdulhafizov33@gmail.com

Annotatsiya: Ushbu maqola Bucket Sort (chelakli saralash) algoritmi haqida

batafsil ma’lumot berishga qaratilgan. Bucket Sort - bu massiv elementlarini bir

nechta bucket (chelak) yoki guruhlarga taqsimlash orqali ishlaydigan saralash

algoritmidir. Har bir chelak alohida saralanadi, so’ngra chelaklardagi saralangan

elementlar birlashtirilib, yakuniy tartiblangan massiv hosil qilinadi. Maqolada

algoritmning asosiy tamoyillari, ishlash prinsipi, murakkablik tahlili, afzalliklari,

kamchiliklari va amaliy qo’llanilish sohalari ko’rib chiqiladi. Shuningdek,

algoritmning C# dasturlash tilidagi amaliy namunasi keltiriladi.

Kalit so’zlar: bucket sort, saralash algoritmi, taqsimlash orqali saralash,

chiziqli vaqt murakkabligi, ma’lumotlar tuzilmalari, algoritm murakkabligi, bin sort,

uniform taqsimot, vaqt murakkabligi, xotira murakkabligi.

Аннотация: Целью этой статьи является предоставление подробной

информации об алгоритме сортировки сегментов. Bucket Sort — это алгоритм

сортировки, который работает путем разделения элементов массива на

несколько сегментов или групп. Каждый сегмент сортируется отдельно, затем

отсортированные элементы в сегментах объединяются для формирования

окончательного отсортированного массива. В статье рассмотрены основные

принципы алгоритма, принцип работы, анализ сложности, преимущества,

недостатки и области практического применения. Также представлен

практический пример алгоритма на языке программирования C#.


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

224

Ключевые слова: сегментная сортировка, алгоритм сортировки,

сортировка по распределению, линейная временная сложность, структуры

данных, сложность алгоритма, сортировка ячеек, равномерное распределение,

временная сложность, сложность памяти.

Abstract: This article examines medical information about the Bucket Sorting

Algorithm. Bucket Sort is an algorithmic control of array validation by partitioning it

into multiple buckets or controls. Sorted by each bucket, combined to form a sorted

array of buckets. The article considers the basics of the algorithm, the principle of

operation, analysis of complexity, errors and areas of practical application. The

implementation of the algorithm in the C# programming language is also in place.

Key words: bucket sort, sorting algorithm, sorting by distribution, linear time

complexity, data structures, algorithm complexity, bin sort, uniform distribution, time

complexity, memory complexity.

Kirish

Bucket Sort (yoki Bin Sort, Chelakli Saralash) - bu massiv elementlarini bir

nechta “chelak” (inglizcha: bucket) yoki “quti” (inglizcha: bin) deb ataladigan

guruhlarga taqsimlash orqali ishlaydigan saralash algoritmidir. Bu algoritm taqsimlash

orqali saralash (distribution sort) turkumiga kiradi va Pigeonhole Sort (kaptar uyasi

saralashi) algoritmining umumlashtirilgan shakli hisoblanadi, chunki u har bir

chelakka bir nechta kalit (element) tushishiga imkon beradi. Shuningdek, u Radix Sort

(razryadli saralash) algoritmining eng yuqori razryaddan boshlab saralash turiga yaqin

hisoblanadi.

Bucket Sort algoritmining asosiy g’oyasi shundan iboratki, agar kiruvchi

ma’lumotlar ma’lum bir diapazonda bir tekis taqsimlangan bo’lsa, saralash jarayonini

tezlashtirish mumkin. Algoritm elementlarni qiymatlari bo’yicha oldindan belgilangan

diapazonlarga mos keladigan chelaklarga joylashtiradi. Har bir chelak ichidagi

elementlar alohida saralanadi. Buning uchun boshqa bir saralash algoritmi (masalan,

Insertion Sort - qo’shish orqali saralash) ishlatilishi yoki Bucket Sort algoritmining o’zi


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

225

rekursiv tarzda qo’llanilishi mumkin. Nihoyat, barcha chelaklardagi saralangan

elementlar ketma-ketlikda birlashtirilib, yakuniy tartiblangan massiv hosil qilinadi.

Bucket Sort taqqoslashga asoslangan saralash algoritmi sifatida ham qaralishi

mumkin, chunki chelaklar ichidagi elementlarni saralash uchun ko’pincha

taqqoslashga asoslangan algoritmlar (masalan, Insertion Sort, Merge Sort) ishlatiladi.

Algoritmning samaradorligi (hisoblash murakkabligi) har bir chelakni saralash uchun

ishlatiladigan algoritmga, ishlatiladigan chelaklar soniga va kiruvchi ma’lumotlarning

qanchalik bir tekis taqsimlanganligiga bog’liq. ## Algoritmning qanday ishlashi

Bucket Sort algoritmining ishlash jarayoni odatda quyidagi qadamlardan iborat

bo’ladi:

1.

Chelaklarni yaratish:

Dastlab, ma’lum bir

k

sonda bo’sh chelaklar

(odatda ro’yxatlar yoki massivlar ro’yxati ko’rinishida) yaratiladi. Chelaklar soni

k

odatda kiruvchi massivdagi elementlar soni

n

ga teng yoki yaqin olinadi, ammo bu

qiymat muammoning xususiyatiga qarab tanlanishi mumkin. Chelaklar kiruvchi

ma’lumotlar diapazonini qamrab olishi kerak. Masalan, agar elementlar 0 dan 1 gacha

bo’lgan haqiqiy sonlar bo’lsa, 10 ta chelak yaratilishi mumkin, har biri 0.1 uzunlikdagi

intervalni (masalan, [0, 0.1), [0.1, 0.2), …, [0.9, 1.0)) ifodalaydi.

2.

Elementlarni taqsimlash (Scatter):

Kiruvchi massivdagi har bir element

arr[i]

olinadi va uning qiymatiga mos keladigan chelakka joylashtiriladi. Element

qaysi chelakka tushishini aniqlash uchun odatda maxsus formula ishlatiladi. Masalan,

0 dan

M

gacha bo’lgan qiymatlar uchun

k

ta chelak bo’lsa,

arr[i]

elementi

floor(k

* arr[i] / M)

indeksli chelakka joylashtirilishi mumkin (agar

M

maksimal

qiymatdan biroz katta olingan bo’lsa). Agar elementlar 0 dan 1 gacha bo’lsa,

floor(k

* arr[i])

formulasi ishlatilishi mumkin. Har bir element o’ziga tegishli chelakka

qo’shiladi.

3.

Har

bir

chelakni

saralash:

Barcha

elementlar

chelaklarga

taqsimlangandan so’ng, har bir bo’sh bo’lmagan chelak ichidagi elementlar alohida

saralanadi. Bu saralash uchun odatda Insertion Sort kabi oddiy va kichik hajmdagi


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

226

ma’lumotlar uchun samarali bo’lgan algoritm ishlatiladi. Chunki agar kiruvchi

ma’lumotlar bir tekis taqsimlangan bo’lsa, har bir chelakdagi elementlar soni kam

bo’lishi kutiladi. Biroq, boshqa saralash algoritmlari (Merge Sort, Quick Sort) yoki

hatto Bucket Sortning o’zi rekursiv ravishda ishlatilishi ham mumkin.

4.

Chelaklarni birlashtirish (Gather):

Nihoyat, barcha chelaklardagi

saralangan elementlar tartib bo’yicha (birinchi chelakdan boshlab oxirgisigacha)

ketma-ket olinib, asl massivga yoki yangi natijaviy massivga yig’iladi. Bu jarayon

natijasida to’liq saralangan massiv hosil bo’ladi. ## Vaqt va Xotira Murakkabliklari

Bucket Sort algoritmining samaradorligi kiruvchi ma’lumotlarning

taqsimlanishiga va har bir chelakni saralash uchun ishlatiladigan algoritmga bog’liq.

Vaqt Murakkabligi:

1.

Eng Yaxshi Holat (Best Case):

O(n + k). Bu holat elementlar chelaklar

bo’ylab bir tekis taqsimlanganda yuzaga keladi. Har bir chelakda taxminan bir xil va

oz sonli elementlar bo’ladi. Agar chelaklarni saralash uchun Insertion Sort kabi chiziqli

vaqtda ishlaydigan (kichik yoki deyarli saralangan ma’lumotlar uchun) algoritm

ishlatilsa va chelaklar soni

k

massiv elementlari soni

n

ga proporsional bo’lsa (k ≈ n),

umumiy vaqt murakkabligi O(n) ga yaqinlashadi.

O(n)

vaqt elementlarni chelaklarga

taqsimlash uchun,

O(k)

vaqt esa (har bir chelak uchun o’rtacha O(1) yoki kichik

konstant vaqt sarflansa) chelaklarni saralash va birlashtirish uchun sarflanadi.

2.

O’rtacha Holat (Average Case):

O(n + k). Agar kiruvchi ma’lumotlar

tasodifiy va bir tekis taqsimlangan deb faraz qilinsa, Bucket Sort o’rtacha hisobda

chiziqli vaqtda ishlaydi. Elementlar chelaklarga notekis taqsimlangan bo’lsa ham, agar

chelaklardagi elementlar soni kvadratlarining yig’indisi umumiy elementlar soniga

nisbatan chiziqli bo’lib qolsa, algoritm chiziqli vaqtda ishlashda davom etadi.

3.

Eng Yomon Holat (Worst Case):

O(n

2

). Eng yomon holat barcha (yoki

deyarli barcha) elementlar bitta chelakka tushganda yuzaga keladi. Bu holatda

algoritmning samaradorligi asosan shu bitta chelakni saralash uchun ishlatiladigan

algoritmning samaradorligiga bog’liq bo’lib qoladi. Agar chelaklarni saralash uchun


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

227

Insertion Sort yoki Bubble Sort kabi O(n

2

) murakkablikka ega algoritm ishlatilsa,

Bucket Sortning umumiy eng yomon vaqt murakkabligi ham O(n

2

) bo’ladi. Agar

chelaklarni saralash uchun Merge Sort yoki Heap Sort kabi O(n*log

2

n) murakkablikka

ega algoritm ishlatilsa, eng yomon holat murakkabligi O(n*log

2

n) gacha yaxshilanishi

mumkin.

Xotira Murakkabligi:

Bucket Sort algoritmi qo’shimcha xotira talab qiladi. Xotira murakkabligi

O(n

+ k)

dir. Bu yerda

O(k)

xotira

k

ta chelakni saqlash uchun,

O(n)

xotira esa eng yomon

holatda barcha

n

element bitta chelakka tushganda yoki chelaklar ichida elementlarni

saqlash uchun (masalan, bog’langan ro’yxatlar ishlatilganda) kerak bo’ladi.

Afzalliklari va Kamchiliklari:

Bucket Sort algoritmining o’ziga xos afzalliklari va kamchiliklari mavjud.

Afzalliklari:

1.

Yuqori Tezlik (O’rtacha Holatda):

Agar kiruvchi ma’lumotlar bir tekis

taqsimlangan bo’lsa, Bucket Sort o’rtacha hisobda juda tez ishlaydi, vaqt murakkabligi

O(n + k) ga teng bo’ladi. Agar

k

n

ga proporsional bo’lsa (k = n), bu deyarli chiziqli

O(n) vaqtni anglatadi. Bu uni Quick Sort, Merge Sort kabi O(n log

2

n) murakkablikdagi

algoritmlardan tezroq qiladi.

2.

Tashqi Saralash uchun Yaroqlilik:

Bucket Sort katta hajmdagi

ma’lumotlar to’plamini saralash uchun mos kelishi mumkin, chunki har bir chelak

alohida qayta ishlanishi va saralanishi mumkin, bu esa xotiradan tashqarida joylashgan

ma’lumotlar bilan ishlashga imkon beradi.

3.

Parallelizatsiya:

Chelaklarni

saralash

jarayoni

osongina

parallellashtirilishi mumkin, chunki har bir chelak mustaqil ravishda saralanadi. Bu

ko’p yadroli protsessorlarda yoki taqsimlangan tizimlarda samaradorlikni oshirishi

mumkin.

Kamchiliklari:


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

228

1.

Ma’lumotlarning

Taqsimlanishiga

Bog’liqlik:

Algoritmning

samaradorligi kiruvchi ma’lumotlarning qanchalik bir tekis taqsimlanganligiga juda

bog’liq. Agar ma’lumotlar notekis taqsimlangan bo’lsa va ko’pchilik elementlar bitta

yoki bir nechta chelakka to’planib qolsa, algoritmning ishlash vaqti keskin

yomonlashadi va eng yomon holatda O(n

2

) yoki O(n log n) ga yetishi mumkin

(chelaklarni saralash uchun ishlatilgan algoritmga qarab).

2.

Qo’shimcha Xotira Talabi:

Bucket Sort chelaklarni va ularning ichidagi

elementlarni saqlash uchun qo’shimcha xotira (O(n + k)) talab qiladi. Bu xotira sarfi

ba’zi hollarda, ayniqsa xotira cheklangan muhitlarda muammo tug’dirishi mumkin.

3.

Chelak Sonini Tanlash:

Optimal chelaklar sonini

k

tanlash har doim ham

oson emas va kiruvchi ma’lumotlarning xususiyatlariga bog’liq. Noto’g’ri tanlangan

k

qiymati samaradorlikka salbiy ta’sir ko’rsatishi mumkin.

4.

Faqat Muayyan Ma’lumot Turlariga Mosligi:

Asosiy Bucket Sort

algoritmi odatda bir tekis taqsimlanishi mumkin bo’lgan raqamli ma’lumotlar

(masalan, 0 dan 1 gacha bo’lgan haqiqiy sonlar yoki ma’lum diapazondagi butun

sonlar) uchun mo’ljallangan. Boshqa turdagi ma’lumotlar (masalan, satrlar) uchun

qo’shimcha ishlov berish (masalan, xeshlash) talab qilinishi mumkin.

C# tilidagi dasturi:

Quyida Bucket Sort algoritmining C# dasturlash tilida yozilgan namunasi

keltirilgan. Ushbu kod massivdagi 0 dan 1 gacha bo’lgan haqiqiy sonlarni saralash

uchun mo’ljallangan. Kodda har bir chelakni saralash uchun Insertion Sort

algoritmidan foydalanilgan.

using

System;

using

System.Collections.Generic;

class

BucketSortAlgorithm

{

static

void

InsertionSort

(

List

<

int

> bucket)

{


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

229

for

(

int

i =

1

; i < bucket.Count; ++i)

{

int

key = bucket[i];

int

j = i -

1

;

while

(j >=

0

&& bucket[j] > key)

{

bucket[j +

1

] = bucket[j];

j--;

}

bucket[j +

1

] = key;

}

}

public

static

void

Sort

(

int

[] arr)

{

int

n = arr.Length;

if

(n <=

0

)

return

;

List

<

int

>[] buckets =

new

List

<

int

>[n];

for

(

int

i =

0

; i < n; i++)

{

buckets[i] =

new

List

<

int

>();

}

for

(

int

i =

0

; i < n; i++)

{

int

bucketIndex = (

int

)(n * arr[i]);

if

(bucketIndex >= n) bucketIndex = n -

1

;

if

(bucketIndex <

0

) bucketIndex =

0

;

buckets[bucketIndex].

Add

(arr[i]);

}

for

(

int

i =

0

; i < n; i++)

{


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

230

InsertionSort

(buckets[i]);

}

int

index =

0

;

for

(

int

i =

0

; i < n; i++)

{

for

(

int

j =

0

; j < buckets[i].Count; j++)

{

arr[index++] = buckets[i][j];

}

}

}

public

static

void

Main

(

string

[] args)

{

int

[] arr = {

7

,

43

,

36

,

21

,

44

,

99

};

Console

.

WriteLine

(

"Boshlang'ich massiv:"

);

foreach

(

int

num

in

arr)

{

Console

.

Write

(num +

" "

);

}

Console

.

WriteLine

(

"\n"

);

Sort

(arr);

Console

.

WriteLine

(

"Saralangan massiv:"

);

foreach

(

int

num

in

arr)

{

Console

.

Write

(num +

" "

);

}

Console

.

WriteLine

();


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

231

Console

.

ReadKey

();

}

}

Qo’llanish sohalari

Bucket Sort algoritmi, ayniqsa, ma’lum shartlar bajarilganda samarali bo’lgani

uchun o’ziga xos qo’llanilish sohalariga ega:

1.

Bir Tekis Taqsimlangan Ma’lumotlar:

Algoritmning eng kuchli tomoni

uning bir tekis taqsimlangan ma’lumotlar bilan ishlashdagi yuqori samaradorligidir.

Agar kiruvchi ma’lumotlar (masalan, 0 dan 1 gacha bo’lgan haqiqiy sonlar yoki

ma’lum bir diapazondagi butun sonlar) taxminan bir tekis taqsimlangan bo’lsa, Bucket

Sort chiziqli vaqtda (O(n)) ishlashi mumkin. Bu uni moliyaviy ma’lumotlar, statistik

tahlillar yoki simulyatsiyalardan olingan natijalar kabi sohalarda qo’llash uchun qulay

qiladi.

2.

Haqiqiy Sonlarni Saralash:

Bucket Sort ko’pincha katta hajmdagi

haqiqiy (suzuvchi nuqtali) sonlarni saralash uchun ishlatiladi, ayniqsa ular ma’lum bir

cheklangan diapazonda joylashgan bo’lsa. Chelaklar ushbu diapazonni kichikroq

intervallarga bo’lish uchun ishlatiladi.

3.

Tashqi Saralash (External Sorting):

Katta hajmdagi ma’lumotlar

to’plami asosiy xotiraga sig’maganda, Bucket Sort tashqi saralash uchun asos bo’lishi

mumkin. Ma’lumotlar avval chelaklarga taqsimlanib, har bir chelak alohida fayl

sifatida saqlanishi mumkin. Keyin har bir fayl (chelak) alohida saralanib, natijalar

birlashtiriladi.

4.

Ma’lumotlar Bazalarida Indekslash:

Ba’zi ma’lumotlar bazasi

tizimlarida yoki ma’lumotlarni qayta ishlash jarayonlarida ma’lumotlarni taxminiy

joylashuviga qarab guruhlash uchun Bucket Sortga o’xshash algoritmlardan

foydalanish mumkin.

5.

Grafika va Geometriya:

Kompyuter grafikasida yoki hisoblash

geometriyasida nuqtalarni yoki obyektlarni koordinatalari bo’yicha guruhlash yoki

saralash uchun Bucket Sort tamoyillari qo’llanilishi mumkin.


background image

MODERN EDUCATION AND DEVELOPMENT

Выпуск журнала №-26

Часть–8_ Май –2025

232

Xolosa

Shuni ta’kidlash kerakki, Bucket Sortning samaradorligi ma’lumotlarning

taqsimlanishiga bog’liq bo’lgani uchun u har qanday vaziyat uchun universal yechim

emas. Ammo yuqorida sanab o’tilgan shartlar bajarilganda, u juda tez va samarali

saralash usuli bo’la oladi.

FOYDALANILGAN ADABIYOTLAR

:

1.

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein -

Introduction to Algorithms (CLRS)

2.

Steven S. Skiena - The Algorithm Design Manual

3.

Robert Sedgewick, Kevin Wayne - Algorithms

4.

Aditya Y. Bhargava - Grokking Algorithms: An Illustrated Guide for

Programmers and Other Curious People

5.

Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser - Data

Structures and Algorithms in Java (yoki C++/Python versiyalari)

6.

"Algoritmlar va ma'lumotlar tuzilmalari"

– D. Axmedov, TATU

Darslik.

7.

"Dasturlash asoslari (C# dasturlash tili misolida)"

– B. Karimov, Toshkent

2021

8.

"Algoritmlarni loyihalash va tahlil qilish"

– M. Jo‘rayev, Farg‘ona

Politexnika Instituti

9.

"Diskret matematika va algoritmik tafakkur"

– T. Yo‘ldoshev

10.

"Kompyuter fanlariga kirish"

– U. Qosimov, TATU

11.

"Ma’lumotlar tuzilmasi va algoritmlar (praktikum)"

– Sh. Normuradov,

Samarqand

12.

"Kompyuter dasturlashining nazariy asoslari"

– B. Ergashev

13.

Medium (Jo’rayev Zarif):

https://medium.com/@zarifjorayev/bucket-sort-

93c5b4486926

14.

Wikipedia (English ):

https://en.wikipedia.org/wiki/Bucket_sort

15.

GeeksforGeeks:

https://www.geeksforgeeks.org/bucket-sort-2/

Most read articles by the same author(s)

Tojimamatov Isroil Nurmamatovich, Abdulhafizov Ibrohim Husanjon o’g’li, SQL SERVERDA CHEKLASHLAR , Modern education and development: Vol. 26 No. 8 (2025)