Saturday, June 20, 2015

Finding Second Highest Number in an Integer array

//Program to find Second highest number in an array - O(n^2)

public class SecHigh{
public static void main(String args[]){

int arr[] = {9,13,43,99,0,19,100,78,63,55}; //99 is second highest
int secHi = 0, counter = 0;

for(int i=0 ; i<arr.length ; i++)
{
counter = 0;
for(int j=0 ; j<arr.length ; j++)
{
if(arr[i]<arr[j])
counter++;
}

if(counter == 1)
System.out.println(arr[i]);

}
}
}


________________________________________________________________________________

BETTER SOLUTION

//Program to find second highest number in an array - O(n)

public class SecHigh1{
public static void main(String args[]){
int arr[] = {12,100,1,78,65,39,79,99,81,91};

int highest = Integer.MIN_VALUE;
int secHi = Integer.MIN_VALUE;

for(int i=0 ; i<arr.length ; i++)
{
if(highest<arr[i])
{
secHi = highest;
highest = arr[i];
}
else
{
if(secHi<arr[i])
secHi = arr[i];
}
}

System.out.println(secHi);

}
}

No comments:

Post a Comment