Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 91c92ac

Browse files
author
Ram swaroop
committed
coded + tested
1 parent 4de1b53 commit 91c92ac

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

src/me/ramswaroop/arrays/MedianOfStream.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
public class MedianOfStream {
1414

1515
public static int getMedianOfStream(int med, int elem, MaxHeap maxHeap, MinHeap minHeap) {
16+
1617
switch (compare(maxHeap.getSize(), minHeap.getSize())) {
1718
case 0:
1819
if (elem < med) {
@@ -30,7 +31,7 @@ public static int getMedianOfStream(int med, int elem, MaxHeap maxHeap, MinHeap
3031
} else {
3132
minHeap.insert(elem);
3233
}
33-
med = (maxHeap.findMax() + minHeap.findMin())/2;
34+
med = (maxHeap.findMax() + minHeap.findMin()) / 2;
3435
break;
3536
case -1:
3637
if (elem < med) {
@@ -39,16 +40,16 @@ public static int getMedianOfStream(int med, int elem, MaxHeap maxHeap, MinHeap
3940
maxHeap.insert(minHeap.deleteMin());
4041
minHeap.insert(elem);
4142
}
42-
med = (maxHeap.findMax() + minHeap.findMin())/2;
43+
med = (maxHeap.findMax() + minHeap.findMin()) / 2;
4344
break;
4445
}
4546
return med;
4647
}
4748

4849
static void printMedianOfStream(int[] a) {
4950
int m = 0;
50-
MaxHeap maxHeap = new MaxHeap(128);
51-
MinHeap minHeap = new MinHeap(128);
51+
MaxHeap maxHeap = new MaxHeap(12);
52+
MinHeap minHeap = new MinHeap(12);
5253
for (int i = 0; i < a.length; i++) {
5354
m = getMedianOfStream(m, a[i], maxHeap, minHeap);
5455
}
@@ -135,8 +136,7 @@ public void insert(int x) {
135136
* Function to find least element *
136137
*/
137138
public int findMin() {
138-
if (isEmpty())
139-
throw new NoSuchElementException("Underflow Exception");
139+
if (size == 0) return -1;
140140
return heap[0];
141141
}
142142

@@ -236,7 +236,8 @@ public MaxHeap(int maxsize) {
236236
}
237237

238238
public int findMax() {
239-
return heap[0];
239+
if (size == 0) return -1;
240+
return heap[FRONT];
240241
}
241242

242243
public int parent(int pos) {

0 commit comments

Comments
 (0)