Skip to content

Commit 8ca0d50

Browse files
committed
merge k-way sorted array
1 parent b8ffe18 commit 8ca0d50

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

PuzzleCoding/src/MergeSortedArray.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,18 @@ public MinHeapArrayNode() {
3535
}
3636

3737
public void insert(ArrayNode node) {
38+
if(node == null)
39+
throw new RuntimeException("can't insert null node");
40+
3841
heap.add(node);
3942
shiftUp(heap.size() - 1);
4043
}
4144

4245
public ArrayNode removeMin() {
4346
if (isEmpty())
4447
throw new RuntimeException("heap is empty");
48+
49+
System.out.println(heap.toString());
4550
ArrayNode min = heap.get(1);
4651
heap.remove(min);
4752

@@ -63,7 +68,7 @@ private void shiftDown(int k) {
6368
while (2 * k <= heap.size() - 1) {
6469
int i = 2 * k; //left
6570
int j = i + 1; //right
66-
if (i < heap.size() - 1 && greater(j, i)) {
71+
if (i < heap.size() - 1 && greater(i, j)) {
6772
i++;
6873
}
6974
if (greater(i, k)) break;
@@ -97,7 +102,8 @@ public static void main(String[] args) {
97102
Integer[][] arrays = new Integer[][]{
98103
{1, 5, 9},
99104
{4, 8, 10},
100-
{6, 11}
105+
{6, 11},
106+
{2,7}
101107
};
102108

103109
ArrayList<Integer> result = mergeSortedArray(arrays);

PuzzleCoding/src/MinHeap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public void printHeap() {
9898
}
9999

100100
public static void main(String[] args) {
101-
int[] a = new int[]{5, 3, 1, 0, 6, 7, 2};
101+
int[] a = new int[]{5, 3, 4, 1, 0, 6, 7, 2};
102102
MinHeap minHeap = new MinHeap(a.length);
103103
for (int i = 0; i < a.length; i++) {
104104
minHeap.insert(a[i]);

0 commit comments

Comments
 (0)