C++ 程序 在给定复杂度限制下查找 n 个元素中的第二小元素
这是一个 C++ 程序,用于在给定的复杂度约束下查找 n 个元素中的第二小元素。
算法
Begin function SecondSmallest() : /* Arguments to this function are: A pointer array a. Number of elements n */ // Body of the function: A variable s1 is declared as to keep track of smallest number. A variable s2 is declared as to keep track of second smallest number. Initialize both s1 and s2 with INT_MAX. Traverse the data array using iteration. If current array element is lesser than current value in s1, then s2 = s1 and s1 = current array element. Else if array element is in between s1 and s2, then s2 = current array element. if(s2==INT_MAX) Print “no second smallest element is present". else Print s2 as second smallest element. End
示例
#include<iostream>
#include <climits> //for INT_MAX
using namespace std;
int SecondSmallest(int *a, int n) {
int s1, s2, i,t;
//initialize s1 and s2
s1 =INT_MAX;
s2=INT_MAX;
for(i = 0; i < n; i++) {
//If current element is smaller than s1
if(s1 > a[i]) {
//update s1 and s2
s2 = s1;
s1 = a[i];
}
//if a[i] is in between s1 and s2
else if(s2 > a[i] && a[i]!=s1) {
//update only s2
s2 = a[i];
}
}
if(s2==INT_MAX)
cout<<"no second smallest element is present";
else
cout<<"Second smallest element is:"<<s2;
}
int main() {
int n, i;
cout<<"Enter the number of elements: ";
cin>>n;
int array[n];
for(i = 0; i < n; i++) {
cout<<"Enter "<<i+1<< " "<<"element: ";
cin>>array[i];
}
SecondSmallest(array, n); //call the function
return 0;
}输出
Enter the number of elements: 5 Enter 1 element: 1 Enter 2 element: 2 Enter 3 element: 1 Enter 4 element: 3 Enter 5 element: 4 Second smallest element is:2
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP