Swift程序 使用选择排序算法按升序对数组进行排序

Swift程序 使用选择排序算法按升序对数组进行排序

选择排序算法是一种排序算法,其中从给定的未排序数组中选择最小或最大的元素,并将该元素放置在未排序数组的开头。这个过程一直持续到最后一个未排序的元素。现在我们使用选择排序按升序对数组进行排序。

例如 −

数组: [6, 10, 3, 7] 
  • 第一次迭代 − 对于第一个位置,从0到3迭代整个数组。在遍历整个数组后,我们发现3是最小的数字,因此对于第一个位置,将6与3交换。
结果数组: [3, 10, 6, 7] 
  • 第二次迭代 − 再次遍历整个数组,找到第二个位置的元素。
结果数组: [3, 6, 10, 7] 
  • 第三次迭代 − 再次遍历整个数组,找到第三个位置的元素。
结果数组: [3, 6, 7, 10] 
所以按升序排序的数组为[3, 6, 7, 10] 

算法

  • 步骤1 − 创建一个函数来使用选择排序算法按升序对数组进行排序。

  • 步骤2 − 在函数内,将最小值初始化为mIndex变量。

  • 步骤3 − 使用嵌套的for-in循环迭代数组的每个元素,以查找最小元素。

  • 步骤4 − 遍历时,如果我们找到比mIndex更小的元素,则交换这两个值。

  • 步骤5 − 然后将mIndex的值增加到下一个元素。

  • 步骤6 − 现在在函数外创建一个整数类型的数组。

  • 步骤7 − 调用函数并将数组传递给它。

  • 步骤8 − 打印排序后的数组。

示例

在以下示例中,我们将创建一个名为selectionSortAlgo()的函数。此函数接受一个数组作为输入,并使用选择排序算法将给定的数组按升序排序。此函数取数组的第一个元素,并假定数组是最小值,然后将该元素与其余数组元素进行比较并检查最小元素。如果找到最小的元素,则将索引更新为该元素。之后,我们遍历数组并交换第一个元素和最小元素。这个过程一直持续到最后一个未排序的元素,最后按升序显示排序后的数组。

import Foundation 
import Glibc 

func selectionSortAlgo(arr: [Int]) -> [Int] {

   // Creating a copy of original array
   var nArr = arr 

   // Selecting minimum element and 
   // then place it at the beginning of the array
   for x in 0..<nArr.count {
      var mIndex = x
      for y in x+1..<nArr.count {
         if nArr[y] < nArr[mIndex] {
            mIndex = y
         }
      }
      if mIndex != x {
         nArr.swapAt(x, mIndex)
      }
   }
   return nArr
}

let array = [9, 1, 8, 1, 3, 5, 10, 2, 8, 23, 6]
let resultantArr = selectionSortAlgo(arr: array)
print("按升序排序的数组:", resultantArr)

输出

按升序排序的数组: [1, 1, 2, 3, 5, 6, 8, 8, 9, 10, 23] 

结论

这就是我们如何使用选择排序对数组进行按升序的排序。这里使用迭代方法实现选择排序。因此,选择排序的时间复杂度为O(N2)。虽然选择排序简单易懂,但其实现不稳定。同时,它不能很好地处理大型数据集。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 示例