21xrx.com
2024-11-25 05:09:07 Monday
登录
文章检索 我的文章 写文章
C++ 如何求取一个数组中第二小的数
2023-07-10 01:12:03 深夜i     --     --
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),效率更高。

  
  

评论区

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