//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);
}
}
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