Write a C, C++ program to find second largest element in an array. Given an unsorted array, we have to write a code to find second largest element in an array.
There is multiple approach to find the second element number in an array. In my previous tutorial, I have explained how to find second largest number using sorting.
We can solve this problem without using sorting as well in O(n) time complexity.
There is multiple approach to find the second element number in an array. In my previous tutorial, I have explained how to find second largest number using sorting.
We can solve this problem without using sorting as well in O(n) time complexity.
C++ Program to Find Second Largest Element in an Unsorted Array
#include <iostream> using namespace std; int main() { int n, i; cout << "Enter number of elements in an array \n"; cin >> n; int arr[n]; cout << "Enter values in an array \n"; //Input array elements for (i = 0; i < n; i++) { cin >> arr[i]; } //Assign min value to max and second_max int max = INT_MIN; int second_max = INT_MIN; for (i = 0; i < n; i++) { if(arr[i] > max) { second_max = max; max = arr[i]; } if(arr[i] < max && arr[i] > second_max) { second_max = arr[i]; } } cout << "Second highest number in an unsorted array is " << second_max; return 0; }
C Program to Find Second Largest Element in an Array Without Using Sorting
#include <stdio.h> main() { int arr[] = {4,5,2,1,7,8}; int highest=0, i; int secondhighest = 0; int n = sizeof(arr)/sizeof(arr[0]); /* Traverse an array. */ for(i=0;i<n;i++){ /* If value of arr[index] is greater than highest value. */ if(arr[i]>highest){ secondhighest = highest; highest = arr[i]; }else if(arr[i]>secondhighest && arr[i] !=highest){ secondhighest = arr[i]; } } printf("Second highest is %d",secondhighest); }
check for 10,6,2,1 ans will be 0 which is wrong...:(
ReplyDeleteThanks for pointing my mistake, i have corrected it.
ReplyDelete