Prioritet növbə

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Amazon Avalara Kod milləti Goldman Sachs google microsoft
Queue nəzəriyyəBaxılıb 66

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Bir prioritet queue adi bir növbəyə bənzər, lakin hər bir elementi ilə əlaqəli bir prioritetə ​​sahib olan bir məlumat quruluşu növüdür. Elementə daha əvvəl verilən prioritet daha yüksəkdir. Bəzi hallarda, eyni prioritetli iki element var, əvvəlcə səsləndirilən element əvvəlcə veriləcəkdir.

misal

Tutaq ki, A işinin B işindən daha yüksək prioritet olduğu 2 iş var, deyək ki, işin planlaşdırılması aşağıdakı qaydada olsun:

  1. A
  2. B
  3. A

Aşağıdakı qaydada prioritet növbə formalaşdırılacaq:

Prioritet növbə Prioritet növbəPin

Beləliklə, burada daha yüksək prioritetli işlərin daha az prioritetli işlərdən əvvəl təyin olunduğunu görürsünüz.

Prioritet növbənin növləri

  1. Sifariş prioritet növbəsinin artması

    Bu tip prioritet növbəsində, daha yüksək prioritetli işlərə daha az prioritet sayı verilir.
    Misal üçün: İki iş, yəni A və B, A işinin daha üstün olduğu 1 və 2 nömrələri verilirsə, A-ya 1, B işinə 2 veriləcəkdir.

  2. Sifariş prioritet növbəsi azalır

    Bu tip prioritet növündə daha yüksək prioritetli işlərə daha yüksək prioritet sayı verilir.
    Misal üçün: İki iş, yəni A və B, A işinin daha üstün olduğu 1 və 2 nömrələri verilirsə, A-ya 2, B işinə 1 veriləcəkdir.

Əməliyyat Priority Queue tərəfindən həyata keçirilir

Prioritet_sırası ilə həyata keçirilən əsas əməliyyatlar aşağıdakılardır:

  1. Daxiletmə: Prioritetinə görə növbəyə bir maddə əlavə edin.
  2. Silin: Bir elementi növbədən çıxarır.
  3. getHighestPriority: Sizə ən yüksək prioritet elementini verir.

Priority_queue bir neçə əməliyyatı daha dəstəkləyir:

  1. Bax: Elementi növbənin önündə əldə edin.
  2. isFull: növbənin dolu olub olmadığını yoxlayır.
  3. boşdur: növbənin boş olub olmadığını yoxlayır.

Applications

  1. CPU planlaşdırma, Disk Planlaşdırma və s. Kimi planlaşdırmada.
  2. Qrafik Alqoritmləri (Dijkstra-nın ən qısa yol alqoritmi, Primin Minimum Spanning Tree və s.)

Həyata keçirilməsi

Prioritet növbə bir sıra, əlaqəli siyahı və s. Kimi müxtəlif məlumat strukturlarından istifadə etməklə həyata keçirilə bilər. Bəzi məlumat strukturları zaman çətinlikləri ilə aşağıda verilmişdir:

  1. Diziler (O (n * log (n)))
  2. Bağlı siyahı (O (n))
  3. Yığın (O (log (n)))

Bütün məlumat quruluşunun içərisindən yığın məlumat quruluşu, bir prioritet_sırasını tətbiq edərkən ən yaxşı vaxt mürəkkəbliyini təmin edir.

References

Crack Sistemi Dizayn Müsahibələri
Translate »