Kemungkinan Duplikat:
Algoritma median bergulir dalam C
Mengingat bahwa bilangan bulat dibaca dari aliran data. Temukan median elemen yang dibaca sejauh ini dengan cara yang efisien.
Solusi yang saya baca: Kita dapat menggunakan tumpukan maksimum di sisi kiri untuk mewakili elemen yang kurang dari median efektif, dan tumpukan minimum di sisi kanan untuk mewakili elemen yang lebih besar dari median efektif.
Setelah memproses elemen yang masuk, jumlah elemen dalam tumpukan berbeda paling banyak dengan 1 elemen. Ketika kedua tumpukan berisi jumlah elemen yang sama, kami menemukan rata-rata data root tumpukan sebagai median efektif. Ketika tumpukan tidak seimbang, kami memilih median efektif dari akar tumpukan yang mengandung lebih banyak elemen.
Tetapi bagaimana kita membangun tumpukan maksimum dan tumpukan minimum yaitu bagaimana kita tahu median efektif di sini? Saya berpikir bahwa kita akan memasukkan 1 elemen di max-heap dan kemudian 1 elemen berikutnya di min-heap, dan seterusnya untuk semua elemen. Koreksi saya Jika saya salah di sini.