Re: [JUG-Indonesia] Re: Tanya PriorityQueue
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
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
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
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
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