Reja: Counting Sort Tushunchasi



Yüklə 22,56 Kb.
tarix28.11.2023
ölçüsü22,56 Kb.
#167699
Counting Sort


Counting Sort
Reja:

  1. Counting Sort Tushunchasi.

  2. Algoritmi.

  3. Cheklovlar.

  4. Namunalari.

  5. Qo’llanilishi.

  6. Xulosa.

Counting Sort - bu biror ma'lumotlar to'plamini tartiblash algoritmi. Ushbu algoritmi asosiy g'oya shundan iboratki, berilgan massivdagi har bir elementning ko'rsatkichini hisoblash va shu ko'rsatkichlarni yordamida massivni tartiblash.
Bu algoritmda eng muhim narsa bu, u faqatgina kichik sonli kiruvchi qiymatlarga mos keladi. Agar kiruvchi qiymatlar juda katta bo'lsa, bu algoritmdan foydalanish samarali bo'lmaydi.

Counting Sort algoritmi quyidagicha ishlaydi:



  1. Berilgan massivdagi eng katta elementni topish: Bu qadamda, berilgan massivdagi eng katta elementni topish uchun massivni skanerlaymiz.

  2. Eng katta elementning uzunligiga teng bo’lgan va barcha elementlari 0 bo’lgan yordamchi massivni yaratish: Bu qadamda, eng katta elementning qiymatiga teng bo’lgan hajmdagi yordamchi massiv yaratiladi. Barcha elementlari 0 ga tenglangan.

  3. Yordamchi massivda berilgan massivdagi har bir elementning sonini hisoblash va ularni mos indekslarga saqlash: Bu qadamda, berilgan massivdagi har bir elementning sonini hisoblaymiz va ularni yordamchi massivdagi mos indekslarga saqlaymiz.

  4. Yordamchi massivdagi elementlarning yig’indisini hisoblash: Bu qadamda, yordamchi massivdagi har bir elementning yig’indisini hisoblaymiz. Bu, berilgan massivdagi elementlarni to’g’ri tartiblangan massivga joylashtirishda yordam beradi.

  5. Berilgan massivni oxiridan boshlab, har bir elementni uning to’g’ri joyiga joylashtirish va uning sonini birga kamaytirish: Bu qadamda, berilgan massivni oxiridan boshlab, har bir elementni uning to’g’ri joyiga joylashtiramiz va uning sonini birga kamaytiramiz.

Bu algoritmda eng muhim narsa bu, u faqatgina kichik sonli kiruvchi qiymatlarga mos keladi. Agar kiruvchi qiymatlar juda katta bo’lsa, bu algoritmdan foydalanish samarali bo’lmaydi.

Counting Sort algoritmi juda samarali bo’lishi mumkin, lekin u quyidagi cheklovlarga ega:



  1. Kichik sonli kiruvchi qiymatlar: Bu algoritmda eng muhim narsa bu, u faqatgina kichik sonli kiruvchi qiymatlarga mos keladi. Agar kiruvchi qiymatlar juda katta bo’lsa, bu algoritmdan foydalanish samarali bo’lmaydi.

  2. Butun sonlar: Counting Sort faqat butun sonlarni tartiblash uchun ishlatiladi. Agar massiv haqiqiy sonlarni o’z ichiga oladigan bo’lsa, bu algoritmdan foydalanish mumkin emas.

  3. Manfiy sonlar: Counting Sort manfiy sonlarni tartiblash uchun ishlatilmaydi. Agar massiv manfiy sonlarni o’z ichiga oladigan bo’lsa, bu algoritmdan foydalanish mumkin emas.

  4. Xotira sarflash: Agar berilgan massivdagi eng katta element juda katta bo’lsa, bu algoritmdan foydalanish xotirani sarflaydi, chunki u eng katta elementning uzunligiga teng bo’lgan yordamchi massivni yaratadi.

  5. Stabil emas: Counting Sort stabil emas, ya’ni bir hil qiymatga ega bo’lgan elementlarning tartibini saqlamaydi. Bu, biror ma’lumotlar to’plamini tartiblashda muhim bo’lishi mumkin, masalan, agar har bir element biror ob’ekt bo’lsa va biz ulardan biror xususiyat bo’yicha tartiblashni xohlasak.

Counting Sort algoritmini tushunish uchun quyidagi misolni ko’rib chiqishingiz mumkin. Bu misolda, biz quyidagi massivni tartiblaymiz:
Python: massiv = [4, 2, 2, 8, 3, 3, 1]

  1. Berilgan massivdagi eng katta elementni topish: Bu massivdagi eng katta element 8.

  2. Eng katta elementning uzunligiga teng bo’lgan va barcha elementlari 0 bo’lgan yordamchi massivni yaratish: Bu yerda, eng katta element 8, shuning uchun biz 8 hajmdagi yordamchi massiv yaratamiz va barcha elementlarini 0 ga tenglaymiz.

Python: yordamchi_massiv = [0, 0, 0, 0, 0, 0, 0, 0]

  1. Yordamchi massivda berilgan massivdagi har bir elementning sonini hisoblash va ularni mos indekslarga saqlash: Bu qadamda, berilgan massivdagi har bir elementning sonini hisoblaymiz va ularni yordamchi massivdagi mos indekslarga saqlaymiz.

Python: yordamchi_massiv = [0, 1, 2, 2, 1, 0, 0, 0]

  1. Yordamchi massivdagi elementlarning yig’indisini hisoblash: Bu qadamda, yordamchi massivdagi har bir elementning yig’indisini hisoblaymiz. Bu, berilgan massivdagi elementlarni to’g’ri tartiblangan massivga joylashtirishda yordam beradi.

Python: yordamchi_massiv = [0, 1, 3, 5, 6, 6, 6, 6]

  1. Berilgan massivni oxiridan boshlab, har bir elementni uning to’g’ri joyiga joylashtirish va uning sonini birga kamaytirish: Bu qadamda, berilgan massivni oxiridan boshlab, har bir elementni uning to’g’ri joyiga joylashtiramiz va uning sonini birga kamaytiramiz.

Python: tartiblangan_massiv = [1, 2, 2, 3, 3, 4]
Shunday qilib, biz Counting Sort algoritmi yordamida berilgan massivni tartibladik.

Counting Sort algoritmi quyidagi holatlarda foydali bo’lishi mumkin:




  1. Kichik sonli kiruvchi qiymatlar: Agar berilgan massiv kichik sonli kiruvchi qiymatlarni o’z ichiga oladigan bo’lsa, Counting Sort algoritmi juda samarali bo’ladi. Bu, massivdagi eng katta elementning qiymati kichik bo’lganida yuzaga keladi.



  1. Butun sonlar: Counting Sort faqat butun sonlarni tartiblash uchun ishlatiladi. Bu, massiv butun sonlarni o’z ichiga oladigan bo’lsa, Counting Sort algoritmi juda samarali bo’ladi.



  1. Tartiblash tartibi muhim emas: Agar bir hil qiymatga ega bo’lgan elementlarning tartibini saqlash muhim bo’lmasa, Counting Sort algoritmi juda samarali bo’ladi. Bu, biror ma’lumotlar to’plamini tartiblashda muhim bo’lishi mumkin emas, masalan, agar har bir element biror ob’ekt bo’lsa va biz ulardan biror xususiyat bo’yicha tartiblashni xohlasak.




  1. Xotira sarflash: Agar berilgan massivdagi eng katta element juda katta bo’lsa, bu algoritmdan foydalanish xotirani sarflaydi, chunki u eng katta elementning uzunligiga teng bo’lgan yordamchi massivni yaratadi.




  1. Stabil emas: Counting Sort stabil emas, ya’ni bir hil qiymatga ega bo’lgan elementlarning tartibini saqlamaydi. Bu, biror ma’lumotlar to’plamini tartiblashda muhim bo’lishi mumkin, masalan, agar har bir element biror ob’ekt bo’lsa va biz ulardan biror xususiyat bo’yicha tartiblashni xohlasak.

Counting Sort algoritmi juda samarali bo’lishi mumkin, lekin u faqatgina kichik sonli kiruvchi qiymatlarga mos keladi. Bu algoritmda eng muhim narsa bu, u faqatgina kichik sonli kiruvchi qiymatlarga mos keladi. Agar kiruvchi qiymatlar juda katta bo’lsa, bu algoritmdan foydalanish samarali bo’lmaydi.


Counting Sort algoritmi boshqa tartiblash algoritmlari bilan solishtirganda, u quyidagi afzalliklarga ega:


  1. Tezlik: Counting Sort algoritmi O(n+k) vaqt sarflaydi, bu yerda n - elementlar soni, k - kiruvchi qiymatlarning maksimal qiymati. Bu, u algoritmini boshqa tartiblash algoritmlariga nisbatan tez qiladi.



  1. Stabil: Counting Sort stabil tartiblash algoritmi hisoblanadi. Bu degani, agar ikkita element bir xil qiymatga ega bo’lsa, ularning kirish massivida va chiqish massivida o’zaro tartibi mos keladi.



  1. Qo’llanilishi: Counting Sort algoritmi juda samarali bo’lishi mumkin, lekin u faqatgina kichik sonli kiruvchi qiymatlarga mos keladi. Agar kiruvchi qiymatlar juda katta bo’lsa, bu algoritmdan foydalanish samarali bo’lmaydi.

Biroq, Counting Sort algoritmi boshqa tartiblash algoritmlari bilan solishtirganda, u quyidagi cheklovlarga ham ega:




  1. Katta sonli kiruvchi qiymatlar: Agar berilgan massivdagi eng katta element juda katta bo’lsa, bu algoritmdan foydalanish xotirani sarflaydi, chunki u eng katta elementning uzunligiga teng bo’lgan yordamchi massivni yaratadi.



  1. Manfiy sonlar va haqiqiy sonlar: Counting Sort faqat butun sonlarni tartiblash uchun ishlatiladi. Bu degani, agar massiv manfiy sonlarni yoki haqiqiy sonlarni o’z ichiga oladigan bo’lsa, bu algoritmdan foydalanish mumkin emas.



  1. Stabil emas: Counting Sort stabil emas, ya’ni bir hil qiymatga ega bo’lgan elementlarning tartibini saqlamaydi. Bu degani, agar biror ma’lumotlar to’plamini tartiblashda muhim bo’lishi mumkin emas, masalan, agar har bir element biror ob’ekt bo’lsa va biz ulardan biror xususiyat bo’yicha tartiblashni xohlasak.

Yüklə 22,56 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin