• 1. Tezkor Qisqa Tartiblash (Quick Sort)
  • 3. Tezkor Tartiblash (Shell Sort)
  • 4. Tezkor Radix Sort
  • MASSIVLARNI TEZKOR SARALASH




    Download 0,59 Mb.
    bet3/7
    Sana17.12.2023
    Hajmi0,59 Mb.
    #121887
    1   2   3   4   5   6   7
    Bog'liq
    Abdullayeva Shahrizoda. Saralash va izlash

    MASSIVLARNI TEZKOR SARALASH

    Massiv, biror turdagi ma'lumotlar to'plamidir. C# dasturlash tilida massivlar odatda kerak bo'lgan ma'lumotlar turlarini, masalan, sonlar, matnlar, obyektlar va h.k. saqlash uchun ishlatiladi. Massivda har bir element indeks orqali aniqlanadi.
    C# tilida massivni yaratish va undan foydalanish quyidagi ko'rinishda bo'ladi:

    Tezkor saralash algoritmlari massivlarni samarali, yuqori tezlikda saralash uchun ishlatiladi. Bu algoritmlar ma'lumotlar tuzilmasini n-o'rtadan boshlab vaqtincha ortish bo'yicha tanlaydi. Quyidagi bir nechta tezkor saralash algoritmlarini keltirib o'tamiz:

    1. Tezkor Qisqa Tartiblash (Quick Sort):


    Bu algoritm o'nlab o'qni ajratib oladi. Har bir qismni ajratib, o'rtadagi elementni tanlaydi va o'zini o'rtaga o'rnatadi. So'ngra chap va o'ng qismlar uchun takrorlanadi.
    2. Tezkor Tuzilgan Saqlash (Heap Sort):
    Bu algoritm bitta ma'lumotlar saqlash elementini ishlatadi va har bir qismini saralaydi. U yuqori tezlikda ishlaydi va bo'sh saqlashni ishlatmasdan saralashni bajaradi.
    Bu algoritmlar massivni yuqori tezlikda saralash uchun foydalaniladi. Tanlangan algoritmni ma'lumotlaringizning xususiyatlariga va hajmini ko'rsating, chunki har bir algoritmning xususiyatlari mavjud va ular bir-biridan farq qila olishadi.

    3. Tezkor Tartiblash (Shell Sort):


    Bu algoritm, saralashda tezkorlik va muhimiyatni jamlab chiqarish uchun tuzilgan. O'nlab o'q va chap qarshilik tartiblash algoritmlarining bir qismini o'z ichiga oladi. Shell Sort, bir nechta keyingi o'q qadamidan iborat. Har bir keyingi o'q qadamida massivni solishtirib olish uchun intervalidarni chiqaradi.
    static void TezkorTartiblash(int[] royxat)
    {
    int n = royxat.Length;
    for (int interval = n / 2; interval > 0; interval /= 2)
    {
    for (int i = interval; i < n; i++)
    {
    int j;
    int temp = royxat[i];
    for (j = i; j >= interval && royxat[j - interval] > temp; j -= interval)
    royxat[j] = royxat[j - interval];
    royxat[j] = temp;
    }
    }
    }

    4. Tezkor Radix Sort:


    Bu algoritm, ma'lumotlar to'plamini bir nechta qiymatga ega bo'lgan raqamlar bo'yicha saralash uchun ishlatiladi. Boshqa algoritmlarga nisbatan xotira sarflarini qisqartiradi.
    static void TezkorRadixSort(int[] royxat)
    {
    int max = MaxQiymat(royxat);
    for (int exp = 1; max / exp > 0; exp *= 10)
    CountingSort(royxat, exp);
    }

    static int MaxQiymat(int[] royxat)


    {
    int max = royxat[0];
    for (int i = 1; i < royxat.Length; i++)
    if (royxat[i] > max)
    max = royxat[i];
    return max;
    }

    static void CountingSort(int[] royxat, int exp)


    {
    int n = royxat.Length;
    int[] output = new int[n];
    int[] count = new int[10];
    Array.Fill(count, 0);

    // Har bir raqamni hisoblash


    for (int i = 0; i < n; i++)
    count[(royxat[i] / exp) % 10]++;

    // Tartiblash uchun indekslar qo'shish


    for (int i = 1; i < 10; i++)
    count[i] += count[i - 1];

    // output massivini yaratish va to'g'rilash


    for (int i = n - 1; i >= 0; i--)
    {
    output[count[(royxat[i] / exp) % 10] - 1] = royxat[i];
    count[(royxat[i] / exp) % 10]--;
    }

    // Asl massivni yangilash


    for (int i = 0; i < n; i++)
    royxat[i] = output[i];
    }
    Bu tezkor saralash algoritmlari dasturlashda muhim rol o'ynaydi. O'ziga xos shartlarda va hajmlarda foydalanish maqsadida, ma'lumotlarni samarali va tez saralash uchun bu algoritmlardan birini tanlash tavsiya etiladi.


    Download 0,59 Mb.
    1   2   3   4   5   6   7




    Download 0,59 Mb.