Muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalar universiteti samarqand filiali


Download 94.2 Kb.
bet2/2
Sana17.06.2023
Hajmi94.2 Kb.
#1543591
1   2
Bog'liq
4-amaliy 19 -nomer

Selection sort g’oyasi juda ham oddiy: har qadamda arrayning saralanmagan qismidagi eng kichik (yoki eng katta) elementni topib saralangan qism oxiriga qo’shib ketish.
Insertion sort ham shunday ishlaydi. Algoritm oldin array boshidagi ikkita elementni saralab oladida qolgan elementlarni shularga qarab o’z o’rniga joylashtirib ketaveradi. (Ulardan oldiga, ularning orasiga yoki ulardan keyinga). Har bir element huddi shu tartibda o’z o’rnini topib boraveradi.
Algoritm qadamlari:
1.Array boshidagi ikkita element solishtirib, saralab olinadi.
2.Qolgan elementlar bitta bitta qarab chiqiladi. (Tashqi iteratsiya)
3.Har bir element ichki takrorlanish orqali o’z joyiga joylashtirib boriladi. Bu yerda array chegaralaridan o’tib ketib qolmaslikka e’tibor berish kerak.
4. Tashqi takrorlanish tugashi bilan array ham saralangan bo’ladi.
Algoritm murakkabligi:
Insertion sort ham Selection va Bubble sort kabi O(n²) vaqt murakkabligi bilan ishlasa ham, lekin ulardan ko’ra samaraliroq algoritm hisoblanadi. Aynan, array elementlari deyarli saralangan holatda Insertion sort algoritmi Merge yoki Quick sort algoritmidan ham ko’ra tezroq ishlaydi.

  • Birlashmali saralash (Merge Sort) algoritmi asosiy beshta saralash algoritmlari (pufakchali saralash, tezkor saralash va boshqalar) dan biri bo`lib, chiziqli saralash algoritmlaridan farqli ravishda "bo`lib tashla va hukmronlik qil" tipidagi algoritm hisoblanadi.

  • Bu tipdagi algoritmlar katta hajmdagi masalalarni nisbatan kichik bo`lgan va oson yechiladigan qismlarga ajratgan holda bajaradi. Bunday algoritmlar masalalarni hal qilishda vaqtdan katta yutuq qilish imkonini beradi.

Topshiriq.
Murakkab saralash algoritmlari, bir nechta elementdan iborat ro'yxatni tartiblash uchun ishlatiladigan algoritmlardir. Bu algoritmlar umumiy ravishda ikki toifaga bo'linadi: solishtirish (comparison-based) algoritmlar va solishtirmasiz (non-comparison-based) algoritmlar.
Solishtirish algoritmlari odatda elementlarni solishtirish operatsiyalari (masalan, yoki, katta bo'lish, kichik bo'lish) yordamida elementlarni tartiblash uchun ishlatadi. Ular o'nlik, tog'lik, qo'shimcha solishtirish va boshqa algoritmlarga misol sifatida keltirilishi mumkin. Quyidagi C++ dasturda, `std::sort()` funksiyoni yordamida solishtirish algoritmini ishlatib, bir int ro'yxatini tartiblaymiz:

```cpp
#include


#include
#include

int main() {


std::vector nums = {5, 2, 7, 1, 9};
// Murakkab saralash
std::sort(nums.begin(), nums.end());
// Tartiblangan ro'yxatni chiqarish
for (int num : nums) {
std::cout << num << " ";
}
return 0;
}
```

Solishtirmasiz algoritmlar esa solishtirish operatsiyalarini ishlatmaydigan, murakkab amaliyotlarni bajarish uchun yaratilgan algoritmlardir. Misol uchun, Counting Sort, Radix Sort va Bucket Sort solishtirmasiz algoritmlarga misollar sifatida keltirilishi mumkin.


XULOSA
Murakkab saralash algoritmlari dasturlash tilidan tilga o'zgaradi. Masalan, C++ tilida `std::sort()` funksiyoni, Python tilida `sorted()` funktsiyasi bilan algoritmlarni ishlab chiqish mumkin. Qaysi dasturlash tili va dastur turi sizga kerakligini aniqlangandan so'ng, o'zgartirilgan dasturni yaratish mumkin.

Download 94.2 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling