Professional Documents
Culture Documents
import java.util.Stack;
public class MaxMaxRecursion {
// private class Node
private class Node{ // (could be other items)
int num;
Stack<Integer> st;
public Node(int num){
this.num = num;
st = new Stack<Integer>();
}
}
// data item
Node arr[];
int size, i=-1, j=-1;
// constructor
public MaxMaxRecursion(int a[]){
size = a.length;
arr = new Node[size];
for (int i=0; i<size; i++){
arr[i] = new Node(a[i]);
}
}
private int maxMax2(int low, int high){
if (low < high){
int index = 0;
int middle = (low + high)/2;
int i = maxMax2(low, middle);
int j = maxMax2(middle+1, high);
if (arr[i].num>arr[j].num){
arr[i].st.push(arr[j].num);
index = i;
}
else{
arr[j].st.push(arr[i].num);
index = j;
}
return index;
}
else{
return low;
}
}
public void maxMax2(){
int index = maxMax2(0, size-1);
System.out.println(arr[index].num);
int max2 = arr[index].st.pop();
while(!arr[index].st.empty()){
int temp = arr[index].st.pop();
if (temp>max2) max2=temp;
}
System.out.println(max2);
}
פונקצית עזר
פונקצית בדיקה