package Misc;import java.util.Collections;import java.util.PriorityQueue;/*** @author shrutisheoran*/public class MedianOfRunningArray {private PriorityQueue<Integer> p1;private PriorityQueue<Integer> p2;//Constructorpublic MedianOfRunningArray() {this.p1 = new PriorityQueue<>(Collections.reverseOrder()); //Max Heapthis.p2 = new PriorityQueue<>(); //Min Heap}/*Inserting lower half of array to max Heapand upper half to min heap*/public void insert(Integer e) {p2.add(e);if (p2.size() - p1.size() > 1)p1.add(p2.remove());}/*Returns median at any given point*/public Integer median() {if (p1.size() == p2.size())return (p1.peek() + p2.peek()) / 2;return p1.size() > p2.size() ? p1.peek() : p2.peek();}public static void main(String[] args) {/*Testing the median function*/MedianOfRunningArray p = new MedianOfRunningArray();int arr[] = {10, 7, 4, 9, 2, 3, 11, 17, 14};for (int i = 0; i < 9; i++) {p.insert(arr[i]);System.out.print(p.median() + " ");}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。