Giả sử chúng ta có một mảng gồm n phần tử. Chúng ta phải tìm các phần tử nhỏ nhất đầu tiên, thứ hai và thứ ba trong mảng. Giá trị tối thiểu đầu tiên là giá trị nhỏ nhất của mảng, giá trị tối thiểu thứ hai là tối thiểu nhưng lớn hơn giá trị đầu tiên và tương tự, giá trị tối thiểu thứ ba là nhỏ nhất nhưng lớn hơn giá trị tối thiểu thứ hai.
Quét qua từng phần tử, sau đó kiểm tra phần tử và liên hệ điều kiện với các điều kiện của phần tử tối thiểu thứ nhất, thứ hai và thứ ba để giải quyết vấn đề này.
Ví dụ
#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); }
Đầu ra
First min = 4 Second min = 9 Third min = 12