21xrx.com
2024-11-25 08:04:57 Monday
登录
文章检索 我的文章 写文章
C++求解第二小的值
2023-07-04 23:49:45 深夜i     --     --
C++ 求解 第二小的值

在C++语言中,求解一个数组中的第二小的值可以用多种算法,这里介绍两种实现方法。

方法一:排序法

首先,使用STL中的sort函数将数组进行排序,并取出第二小的元素作为结果。

示例代码:


#include<iostream>

#include<algorithm>

using namespace std;

int main(){

  int n;

  cin >> n;

  int a[n];

  for(int i=0;i<n;i++){

    cin >> a[i];

  }

  sort(a,a+n);

  cout << a[1] << endl;

  return 0;

}

方法二:遍历法

先记录数组中最小的元素,然后遍历整个数组,更新最小值和次小值。

示例代码:


#include<iostream>

using namespace std;

int main(){

  int n,arr[1000];

  cin>>n;

  for(int i=0;i<n;i++){

    cin>>arr[i];

  } 

  int min = arr[0],min_second = 0x7fffffff;

  for(int i=0;i<n;i++){

    if(arr[i]<min){

      min_second = min;

      min = arr[i];

    }

    else if (arr[i]<min_second&&arr[i]>min){

      min_second = arr[i];

    }

  }

  cout<<min_second<<endl;

  return 0;

}

以上两种方法在不同情况下的效率不同,具体选择何种算法需要根据具体情况进行权衡和考虑。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复