Re: [JUG-Indonesia] Re: Tanya PriorityQueue

2008-05-28 Terurut Topik Eko Wibowo
kalo cuma mau 1 data terkecil ya mending di looping manual kan cuma O(N), sort 
itu cepet, tapi dalam kasus ini yand didapat setelah sort kan bukan cuma data 
terkecil, tp data itu menjadi terurut, dengan loop manual kan ga bisa dapet ini

imam baihaqi [EMAIL PROTECTED] wrote: berarti 
lebih lama disort dl dong daripada manual for trus dibandingin
 kecil mana, sampe data terakhir, baru didapet data terkecil.
 
 padahal seharusnya lebih cepet pake sort dl trus di get[0], apa emang
 array.sort cuman lebin praktis ya? padahal aslinya lebih lemot.
 
 cmiiw.
 
 --- In jug-indonesia@yahoogroups.com, Eko Wibowo [EMAIL PROTECTED]
 wrote:
 
  kalo array di sort dulu malah N log N karena sort java itu
 implementasi mergesort. bisa log (N) karena priority queue nya
 implementasi struktur data heap
 http://en.wikipedia.org/wiki/Heap_(data_structure)
  
  imam baihaqi [EMAIL PROTECTED] wrote: 
ini notasi big Oh ya? kaya pas ngitung iterasi, tapi IMO kl pake
   PriorityQueue shrsnya bisa O(1), kl di Comparatornya di set yg
   terkecil yg diprioritaskan. eh tapi kl Arrays.sort(array), terus
   array.get[0] apa masih termasuk O(N) utk ambil elemen terkecil dr
 array?
   
   eh btw kok bisa O(log(N)) tuh dr mana ya?
   
   cheers!!
   
   --- In jug-indonesia@yahoogroups.com, Felix Halim felix.halim@
   wrote:
   
 iorityQueue sebenarnya untuk apa ya...?. Thx semua

Priority Queue digunakan untuk mengambil/menaruh element terkecil
(atau terbesar - tergantung method compareTo nya) dengan
 kompleksitas
O(log(N)) dimana N adalah jumlah element di dalam Priority Queue.

Kalau kamu menggunakan array, maka untuk mengambil element terkecil,
kamu butuh O(N)  dimana semua element di array kamu cek dan return
yang paling kecil. Untuk menaruh element di array bisa O(1).

Contoh:

Kamu punya array isinya sebanyak 1,000,000 element.
Kalau kamu ingin mengambil element terkecil, maka kamu butuh looping
1,000,000 kali untuk mencarinya.

Sedangkan kalo kamu pake PriorityQueue, dan didalamnya ada 1,000,000
   element.
Maka untuk mengambil element terkecil hanya dibutuhkan maksimum
log(1,000,000) == 20 kali looping.

Jelas banget kan perbedaannya?

Felix Halim
   
 
 
 
 
   

   

Re: [JUG-Indonesia] Re: Tanya PriorityQueue

2008-05-27 Terurut Topik abangkis
Hi,

kalo queue, stack, dan kawan-kawan. Urutun pengerjaan task/data di
tentukan oleh urutan masuk. Untuk FIFO , task/data yang dimasukkan
terlebih dahulu yang akan di proses, kalau untuk LIFO task/data yang
terakhir kali dimasukkan yang akan di proses terlebih dahulu.

Pada priority queue, sebuah task/data dapat diberikan value prioritas.
Sehingga urutan masuk task/data tersebut tidak menentukan urutan
pemrosesan dari task/data tersebut.

Andai saja ada sebuah Priorty Queue, yang berisi 5 task dengan priorty
value dengan nilai 6-10. Dimana nilai 1 adalah prioritas tertinggi,
sedangkan nilai 10 adalah prioritas terendah. Seandainya ada sebuah
task/data dengan prioritas 1 dimasukkan maka task/data yang akan di
proses selanjutnya adalah data tersebut.

Itu dilihat dari namanya aja loh, belum pernah make juga soalnya :)

2008/5/28 imam baihaqi [EMAIL PROTECTED]:
 bukannya kl array biasa tuh cuman kumpulan satu tipe, sedangkan kl
 queue tuh FIFO, kl stack LIFO? maksudku kl array bisa aja ambil data
 yg ditengah langsung, kl queue/stack ga bisa. hrs diolah dulu, lagian
 kan ada APInya yg lebih lengkap.

 kl saya paling pake arrayList, atau Set atau Map. tergantung kebut. ga
 pernah pake PriorityQueue.

 http://imam-baihaqi.blogspot.com/2008/05/lets-go-lazy.html

 --- In jug-indonesia@yahoogroups.com, Slamet [EMAIL PROTECTED] wrote:

 Hi semua, mau tanya tentang PriorityQueue, bedanya PriorityQueue dengan
 Array biasa apa ya...?,
 maksudku, klo saya mengolah data dengan menggunakan Array biasa
 misal untuk
 sorting, lifo, fifo dll,
 lalu PriorityQueue sebenarnya untuk apa ya...?. Thx semua


 


Re: [JUG-Indonesia] Re: Tanya PriorityQueue

2008-05-27 Terurut Topik Aris Kumara P
Priority Queue itu elemennya isinya prioritas waktu. Yang punya highest 
priority dapet urutan pertama. Contoh aplikasinya adalah bandwidth management.

Baca : http://en.wikipedia.org/wiki/Priority_queue

Kalo dalam bahasa C, either Queue ato Stack bisa berupa Array ato Linked List.

 Regards,

Aris Kumara Prabhawa




- Original Message 
From: imam baihaqi [EMAIL PROTECTED]
To: jug-indonesia@yahoogroups.com
Sent: Wednesday, May 28, 2008 8:47:35
Subject: [JUG-Indonesia]  Re: Tanya PriorityQueue


bukannya kl array biasa tuh cuman kumpulan satu tipe, sedangkan kl
queue tuh FIFO, kl stack LIFO? maksudku kl array bisa aja ambil data
yg ditengah langsung, kl queue/stack ga bisa. hrs diolah dulu, lagian
kan ada APInya yg lebih lengkap.

kl saya paling pake arrayList, atau Set atau Map. tergantung kebut. ga
pernah pake PriorityQueue.

http://imam- baihaqi.blogspot .com/2008/ 05/lets-go- lazy.html

--- In jug-indonesia@ yahoogroups. com, Slamet [EMAIL PROTECTED] . wrote:

 Hi semua, mau tanya tentang PriorityQueue, bedanya PriorityQueue dengan
 Array biasa apa ya...?,
 maksudku, klo saya mengolah data dengan menggunakan Array biasa
misal untuk
 sorting, lifo, fifo dll,
 lalu PriorityQueue sebenarnya untuk apa ya...?. Thx semua




Send instant messages to your online friends http://uk.messenger.yahoo.com 

Re: [JUG-Indonesia] Re: Tanya PriorityQueue

2008-05-27 Terurut Topik Felix Halim
Queue dan Stack (bahkan PriorityQueue) bisa dibuat menggunakan Array biasa.

Lalu kenapa Queue gak bisa get(2) seperti yang kamu mau?
Karena memang itu dilarang, bukannya tidak bisa.

Karena konsep dari Queue adalah ambil element terdepan dari queue.
Mana boleh ngambil orang kedua terdepan?
Kalau boleh, maka itu bukan queue lagi namanya.

Stack juga sama, hanya boleh ambil/taruh elemen di top of stack.
Gak boleh ngambil elemen ke 2 dari top.
Karena itu sengaja di-hide, dan gak ada method get(2).

Kalo kamu mau bisa ambil element dimana saja, ya pakai Array saja beres :)

Queue dan Stack itu untuk forcing interfacenya dan memberikan jaminan bahwa
operasi yang mungkin hanya di front of queue (poll) dan back of queue
(push) dan top of stack.

Felix Halim


2008/5/28 imam baihaqi [EMAIL PROTECTED]:

 eh bukannya beda Array sama Queue sama Stack, meskipun di C, kan
 mereka cenderung ke teori ky tipe data, bukan bahasa-based, dimana2
 seharusnya sama aja, array tuh kan [1, 2, 3, 4] kita bisa ambil
 array[2] misalnya, kl stack hrs di pop() dl dua kali baru bisa ambil
 elemen yg kedua (dimulai dari 0, tentunya), dan emang ga ada command
 stack.get[2], yg ada pop() sama push(int x),

 kl queue aku lupa tp kl PriorityQueue: pq.poll() sama pq.offer(int x),
 ini liat contohnya loh, dan ga da juga kayaknya pq.get[2] misalnya. tp
 ini di java liat dari contoh.

 kl linked list emang gitu tujuannya, ga terbatasi LIFO/FIFO, bentuknya
 [][] - [][] - [][], ada lg circular, yg muter, tujuannya biar lebih
 leluasa ngambil yg mana aja, nyelip kemana aja, tapi tentu
 konsekwensinya lebih susah

 http://imam- baihaqi.blogspot .com/2008/ 05/lets-go- lazy.html

 --- In jug-indonesia@yahoogroups.com, Aris Kumara P [EMAIL PROTECTED] wrote:
 
  Priority Queue itu elemennya isinya prioritas waktu. Yang punya
 highest priority dapet urutan pertama. Contoh aplikasinya adalah
 bandwidth management.
 
  Baca : http://en.wikipedia.org/wiki/Priority_queue
 
  Kalo dalam bahasa C, either Queue ato Stack bisa berupa Array ato
 Linked List.
 
   Regards,
 
  Aris Kumara Prabhawa

 
  Send instant messages to your online friends
 http://uk.messenger.yahoo.com
 



 

 Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke [EMAIL 
 PROTECTED]

 Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id

 Yahoo! Groups Links





Re: [JUG-Indonesia] Re: Tanya PriorityQueue

2008-05-27 Terurut Topik Eko Wibowo
kalo array di sort dulu malah N log N karena sort java itu implementasi 
mergesort. bisa log (N) karena priority queue nya implementasi struktur data 
heap http://en.wikipedia.org/wiki/Heap_(data_structure)

imam baihaqi [EMAIL PROTECTED] wrote: ini notasi 
big Oh ya? kaya pas ngitung iterasi, tapi IMO kl pake
 PriorityQueue shrsnya bisa O(1), kl di Comparatornya di set yg
 terkecil yg diprioritaskan. eh tapi kl Arrays.sort(array), terus
 array.get[0] apa masih termasuk O(N) utk ambil elemen terkecil dr array?
 
 eh btw kok bisa O(log(N)) tuh dr mana ya?
 
 cheers!!
 
 --- In jug-indonesia@yahoogroups.com, Felix Halim [EMAIL PROTECTED]
 wrote:
 
  2008/5/28 Slamet [EMAIL PROTECTED]:
   Hi semua, mau tanya tentang PriorityQueue, bedanya PriorityQueue
 dengan
   Array biasa apa ya...?,
   maksudku, klo saya mengolah data dengan menggunakan Array biasa
 misal untuk
   sorting, lifo, fifo dll,
   lalu PriorityQueue sebenarnya untuk apa ya...?. Thx semua
  
  Priority Queue digunakan untuk mengambil/menaruh element terkecil
  (atau terbesar - tergantung method compareTo nya) dengan kompleksitas
  O(log(N)) dimana N adalah jumlah element di dalam Priority Queue.
  
  Kalau kamu menggunakan array, maka untuk mengambil element terkecil,
  kamu butuh O(N)  dimana semua element di array kamu cek dan return
  yang paling kecil. Untuk menaruh element di array bisa O(1).
  
  Contoh:
  
  Kamu punya array isinya sebanyak 1,000,000 element.
  Kalau kamu ingin mengambil element terkecil, maka kamu butuh looping
  1,000,000 kali untuk mencarinya.
  
  Sedangkan kalo kamu pake PriorityQueue, dan didalamnya ada 1,000,000
 element.
  Maka untuk mengambil element terkecil hanya dibutuhkan maksimum
  log(1,000,000) == 20 kali looping.
  
  Jelas banget kan perbedaannya?
  
  Felix Halim