21xrx.com
2025-03-25 22:23:53 Tuesday
文章检索 我的文章 写文章
C++ 如何求取一个数组中第二小的数
2023-07-10 01:12:03 深夜i     25     0
C++ 数组 第二小的数

在C++中,如何求取一个数组中第二小的数是一个常见的问题。下面我们介绍一种简单的方法。

首先,我们可以先将数组按照升序或者降序排列,然后再取第二个元素即可。但这种方法需要进行排序,时间复杂度为O(nlogn),不够高效。

另一种方法是使用两个变量来分别保存数组中最小值和次小值。我们可以先将最小值设为数组中的第一个元素,然后遍历整个数组,如果遇到比最小值小的元素,就将最小值更新为该元素。如果遇到比最小值大但比次小值小的元素,就将次小值更新为该元素。遍历结束后,次小值即为数组中第二小的数。

下面是实现代码:

#include <iostream>
using namespace std;
int main() {
  int arr[] = 8;
  int n = sizeof(arr) / sizeof(arr[0]);
  int minVal = arr[0], secMinVal = INT_MAX;
  for (int i = 1; i < n; i++) {
    if (arr[i] < minVal) {
      secMinVal = minVal;
      minVal = arr[i];
    }
    else if (arr[i] < secMinVal && arr[i] != minVal) {
      secMinVal = arr[i];
    }
  }
  cout << "第二小的数是:" << secMinVal << endl;
  return 0;
}

以上就是求取C++中一个数组中第二小的数的方法。这种方法时间复杂度为O(n),效率更高。

  
  

评论区

请求出错了