Kent axborot texnologiy


Download 76.54 Kb.
bet4/4
Sana05.01.2022
Hajmi76.54 Kb.
#227127
1   2   3   4
Bog'liq
Rajabov Shohzod Algoritmlarni Loyihalash YN

Tartiblangan array. PQ’ga ma’lumot qo’shilganda u array’ning ohiriga qo’shiladi. So’ngra array Mergesort yordamida tartiblanadi. Ma’lumot o’chirishda PQ ning prioritetiga ko’ra, arrayning eng kichik elementi – birinchi elementi yoki arrayning eng katta elementi – ohirgi elementi arraydan o’chirilib, uning qiymati qaytariladi. Demak PQ’ni tartiblangan array ko’rinishida ifodalaganimizda ma’lumot qo’shish – O(N log N) – tartiblash hisobiga, ma’lumotni o’chirish O(1) bo’ladi.




// mergeSort funksiyani mergesort haqidagi maqoladan topishingiz mumkin




const mergeSort = require('../sorts/mergesort')










/**




* Priority Queue with ordered array.




*/




class PriorityQueueOrderedArray {




constructor(arr = []) {




this.arr = arr




this.maxIndex = 0




this.minIndex = 0




}










enqueue(item) {




// PQga yangi element qo'shadi. Element array ohiriga qo'shiladi.




this.arr.push(item)










// Array mergeSort yordamida tartiblanadi.




mergeSort(this.arr)




}










dequeueMin() {




// Minimum elementni o'chirish uchun array'ning birinchi elementi o'chiriladi




// va uning qiymatini qaytaradi




return this.arr.shift()




}










dequeueMax() {




// Maksimum elementni o'chirish uchun array'ning ohirgi elementi o'chiriladi




// va uning qiymatini qaytaradi




return this.arr.pop()




}










isEmpty() {




// queue bo'shligini tekshiradi




return this.arr.length === 0




}










show() {




return this.arr




}




}










/**




* Ishlatish




*/




const pqOrdered = new PriorityQueueOrderedArray([1,2,3,4,7,9])




pqOrdered.enqueue(5)




console.log(pqOrdered.show())

Download 76.54 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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