Swift程序:查找数组中第二大的元素


在Swift中,我们可以使用`sort()`函数或自定义函数来查找给定数组中的第二大元素。例如,我们有以下数组:

Array = [34, 23, 1, 45, 3]

因此,最大元素是45,第二大元素是34。让我们详细讨论这两种方法以及示例。

方法一

在这种方法中,我们通过创建自定义函数来查找指定数组中的第二大元素。

示例

在下面的示例中,我们将创建一个名为“secondlargestElement”的函数,它接受一个数组作为参数并返回指定数组的第二大元素。此函数首先按升序对输入数组进行排序,然后返回数组末尾的第二大元素。因此,要打印输出,我们需要调用secondlargestElement()函数并将数组传递给它。

import Foundation
import Glibc

// Function to find second largest element from the array
func secondlargestElement(a:[Int])->Int{
   var arr = a
    
   for x in 0..<arr.count{
      for y in x+1..<arr.count{
         if (arr[x]>arr[y]) {
            let t = arr[x]
            arr[x] = arr[y]
            arr[y] = t
         }
      } 
   }
   return arr[arr.count-2]
}

// Test Array
var arr = [3, 4, 19, 4, 18, 3, 20, 3, 22]

print("Second Largest Element is", secondlargestElement(a:arr))

输出

Second Largest Element is 20

方法二

在这种方法中,我们首先使用`sort(by:>)`函数按降序对数组元素进行排序,然后查找数组的第二个元素,因为第一个元素是最大元素,而数组的第二个元素是数组的第二大元素。

示例2

在下面的示例中,我们将有一个整数类型的数组。然后我们使用`sort(by:>)`函数按降序对数组进行排序。现在查找数组的第二个元素,因为在排序后的数组中,第二个元素包含第二大元素。

import Foundation
import Glibc

// Test case
var arr = [34, 10, 4, 9, 19, 45, 23, 87, 2, 4]

// Sort the array in descending order
arr.sort(by:>)

// Finding Second largest element
let result = arr[1]
print("Second largest element is \(result)")

输出

Second largest element is 45

结论

这就是我们如何从数组中查找第二大元素的方法。这两种方法都能提供准确的结果。这些方法适用于任何数据类型,例如整数、浮点数、双精度数等,只需进行一些小的更改。

更新于:2023年4月6日

2K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告