Program to Find Second Smallest and Second Largest Element from an Array
- Write a program to Find Second Smallest and Second Largest Element from an Array in C
- Write a program to Find Second Smallest and Second Largest Element from an Array in C++
- Write a program to Find Second Smallest and Second Largest Element from an Array in Python
- Write a program to Find Second Smallest and Second Largest Element from an Array in PHP
- Write a program to Find Second Smallest and Second Largest Element from an Array in Java
- Write a program to Find Second Smallest and Second Largest Element from an Array in Java Script
- Write a program to Find Second Smallest and Second Largest Element from an Array in C#
Explanation:
The following reasoning can be used to determine an array’s second-smallest and second-largest elements:
Steps:
- Input Validation:
- Ensure the array has at least two distinct elements.
- Handle empty arrays or arrays with only one unique value.
- Initialize Variables:
- Set smallest and second_smallets to appropriate initial values (e.g., infinity for Python or a large number).
- Set largest and second_largest to appropriate initial values (e.g., -infinity or a small number).
- Traverse the Array:
- For each element in the array:
- Update the smallest and second smallest values.
- Update the largest and second largest values.
- For each element in the array:
- Output:
- After the traversal, return the second smallest and second largest values.
Program to Find Second Smallest and Second Largest Element from an Array
-
C
-
C++
-
Python
-
PHP
-
JAVA
-
Java Script
-
C#
#include <stdio.h> #include <limits.h> int main() { int arr[] = {10, 20, 4, 45, 99}; // Example array int size = sizeof(arr) / sizeof(arr[0]); int first_smallest = INT_MAX, second_smallest = INT_MAX; int first_largest = INT_MIN, second_largest = INT_MIN; for (int i = 0; i < size; i++) { if (arr[i] < first_smallest) { second_smallest = first_smallest; first_smallest = arr[i]; } else if (arr[i] < second_smallest && arr[i] != first_smallest) { second_smallest = arr[i]; } if (arr[i] > first_largest) { second_largest = first_largest; first_largest = arr[i]; } else if (arr[i] > second_largest && arr[i] != first_largest) { second_largest = arr[i]; } } printf("Second Smallest: %d\n", second_smallest); printf("Second Largest: %d\n", second_largest); return 0; }
#include <iostream> #include <climits> using namespace std; int main() { int arr[] = {10, 20, 4, 45, 99}; // Example array int size = sizeof(arr) / sizeof(arr[0]); int first_smallest = INT_MAX, second_smallest = INT_MAX; int first_largest = INT_MIN, second_largest = INT_MIN; for (int i = 0; i < size; i++) { if (arr[i] < first_smallest) { second_smallest = first_smallest; first_smallest = arr[i]; } else if (arr[i] < second_smallest && arr[i] != first_smallest) { second_smallest = arr[i]; } if (arr[i] > first_largest) { second_largest = first_largest; first_largest = arr[i]; } else if (arr[i] > second_largest && arr[i] != first_largest) { second_largest = arr[i]; } } cout << "Second Smallest: " << second_smallest << endl; cout << "Second Largest: " << second_largest << endl; return 0; }
arr = [10, 20, 4, 45, 99] # Example array first_smallest, second_smallest = float('inf'), float('inf') first_largest, second_largest = float('-inf'), float('-inf') for num in arr: if num < first_smallest: second_smallest = first_smallest first_smallest = num elif num < second_smallest and num != first_smallest: second_smallest = num if num > first_largest: second_largest = first_largest first_largest = num elif num > second_largest and num != first_largest: second_largest = num print(f"Second Smallest: {second_smallest}") print(f"Second Largest: {second_largest}")
<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-php"><?php $arr = array(10, 20, 4, 45, 99); // Example array $first_smallest = PHP_INT_MAX; $second_smallest = PHP_INT_MAX; $first_largest = PHP_INT_MIN; $second_largest = PHP_INT_MIN; foreach ($arr as $num) { if ($num < $first_smallest) { $second_smallest = $first_smallest; $first_smallest = $num; } elseif ($num < $second_smallest && $num != $first_smallest) { $second_smallest = $num; } if ($num > $first_largest) { $second_largest = $first_largest; $first_largest = $num; } elseif ($num > $second_largest && $num != $first_largest) { $second_largest = $num; } } echo "Second Smallest: $second_smallest\n"; echo "Second Largest: $second_largest\n"; ?>
public class Main { public static void main(String[] args) { int[] arr = {10, 20, 4, 45, 99}; // Example array int firstSmallest = Integer.MAX_VALUE, secondSmallest = Integer.MAX_VALUE; int firstLargest = Integer.MIN_VALUE, secondLargest = Integer.MIN_VALUE; for (int num : arr) { if (num < firstSmallest) { secondSmallest = firstSmallest; firstSmallest = num; } else if (num < secondSmallest && num != firstSmallest) { secondSmallest = num; } if (num > firstLargest) { secondLargest = firstLargest; firstLargest = num; } else if (num > secondLargest && num != firstLargest) { secondLargest = num; } } System.out.println("Second Smallest: " + secondSmallest); System.out.println("Second Largest: " + secondLargest); } }
const arr = [10, 20, 4, 45, 99]; // Example array let firstSmallest = Infinity, secondSmallest = Infinity; let firstLargest = -Infinity, secondLargest = -Infinity; arr.forEach(num => { if (num < firstSmallest) { secondSmallest = firstSmallest; firstSmallest = num; } else if (num < secondSmallest && num !== firstSmallest) { secondSmallest = num; } if (num > firstLargest) { secondLargest = firstLargest; firstLargest = num; } else if (num > secondLargest && num !== firstLargest) { secondLargest = num; } }); console.log(`Second Smallest: ${secondSmallest}`); console.log(`Second Largest: ${secondLargest}`);
using System; class Program { static void Main() { int[] arr = {10, 20, 4, 45, 99}; // Example array int firstSmallest = int.MaxValue, secondSmallest = int.MaxValue; int firstLargest = int.MinValue, secondLargest = int.MinValue; foreach (int num in arr) { if (num < firstSmallest) { secondSmallest = firstSmallest; firstSmallest = num; } else if (num < secondSmallest && num != firstSmallest) { secondSmallest = num; } if (num > firstLargest) { secondLargest = firstLargest; firstLargest = num; } else if (num > secondLargest && num != firstLargest) { secondLargest = num; } } Console.WriteLine($"Second Smallest: {secondSmallest}"); Console.WriteLine($"Second Largest: {secondLargest}"); } }