使用选择排序法对数组进行升序排序的Swift程序
Swift中的选择排序算法是一种排序算法,它从给定的未排序数组中选择最小或最大的元素,并将该元素放置在未排序数组的开头。这个过程持续到最后一个未排序的元素。现在我们使用选择排序法对数组进行升序排序。
例如:
Array: [6, 10, 3, 7]
第一次迭代 - 对于第一个位置,遍历整个数组,从0到3。遍历整个数组后,我们发现3是最小的数字,所以对于第一个位置,将6与3交换。
Resultant Array: [3, 10, 6, 7]
第二次迭代 - 再次遍历整个数组,找到第二个位置的元素。
Resultant Array: [3, 6, 10, 7]
第三次迭代 - 再次遍历整个数组,找到第三个位置的元素。
Resultant Array: [3, 6, 7, 10] So the sorted array in ascending order is [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("Sorted array in ascending order:", resultantArr)
输出
Sorted array in ascending order: [1, 1, 2, 3, 5, 6, 8, 8, 9, 10, 23]
结论
这就是我们如何使用选择排序法对数组进行升序排序。在这里,我们使用迭代方法实现选择排序。因此,选择排序的时间复杂度为O(N2)。虽然选择排序简单易懂,但实现并不稳定。它也不适用于大型数据集。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP