สมมติว่าเรามีอาร์เรย์ขององค์ประกอบ n เราต้องหาองค์ประกอบขั้นต่ำตัวแรก ตัวที่สอง และตัวที่สามในอาร์เรย์ ค่าต่ำสุดแรกคือค่าต่ำสุดของอาร์เรย์ ค่าต่ำสุดที่สองคือค่าต่ำสุดแต่มากกว่าค่านาทีแรก และในทำนองเดียวกันค่าต่ำสุดที่สามคือค่าต่ำสุดแต่มากกว่าค่านาทีที่สอง
สแกนแต่ละองค์ประกอบ จากนั้นตรวจสอบองค์ประกอบ และเชื่อมโยงเงื่อนไขสำหรับเงื่อนไของค์ประกอบขั้นต่ำที่หนึ่ง วินาที และสามเพื่อแก้ปัญหานี้
ตัวอย่าง
#include<iostream> using namespace std; int getThreeMins(int arr[], int n) { int first = INT_MAX, sec = INT_MAX, third = INT_MAX; for (int i = 0; i < n; i++) { if (arr[i] < first) { third = sec; sec = first; first = arr[i]; } else if (arr[i] < sec) { third = sec; sec = arr[i]; } else if (arr[i] < third) third = arr[i]; } cout << "First min = " << first << endl; cout << "Second min = " << sec << endl; cout << "Third min = " << third << endl; } int main() { int array[] = {4, 9, 18, 32, 12}; int n = sizeof(array) / sizeof(array[0]); getThreeMins(array, n); }
ผลลัพธ์
First min = 4 Second min = 9 Third min = 12