Swift程序 使用冒泡排序算法以升序排序数组

Swift程序 使用冒泡排序算法以升序排序数组

在 Swift 中,冒泡排序算法是最简单的搜索算法。此算法通过重复交换相邻的两个元素(如果他们不在正确的位置)来对元素进行排序。现在我们使用冒泡排序以升序排序数组。

例如 –

数组 - [4, 7, 1, 8]
  • 第1次迭代 – 比较两个元素,如果第一个元素大于第二个元素,则交换它们的位置。否则,转到下一对。
[4, 7, 1, 8] 4<7,保持不变
[4, 7, 1, 8] 7>1,交换位置
[4, 1, 7, 8] 7<8,保持不变
  • 第2次迭代 – 再次比较两个元素,如果第一个元素大于第二个元素,则交换它们的位置。
[4, 1, 7, 8] 4>1,交换位置
[1, 4, 7, 8] 4<7,保持不变
[1, 4, 7, 8] 7<8,保持不变
所以升序排序后的数组为 [1, 4, 7, 8]

算法

  • 步骤1 – 创建一个函数,使用冒泡排序算法以升序排序数组。

  • 步骤2 – 在函数内部,我们运行双重 for-in 循环来遍历给定数组中每个相邻元素对。

  • 步骤3 – 检查 if array[y]>array[y+1]。如果是,则交换元素的位置。如果不是,则移动到下一对。

  • 步骤4 – 现在在函数外部创建一个整数类型的数组。

  • 步骤5 – 调用函数并将数组传递给它。

  • 步骤6 – 打印已排序的数组。

示例

在以下示例中,我们将创建一个名为 mBubbleSort() 的函数。此函数以数组作为输入,使用冒泡排序算法将给定数组排序为升序。该函数使用嵌套的 for-in 循环来迭代给定数组中每个相邻元素对,并在第一个元素大于第二个元素时进行交换。此过程一直持续到最后一个未排序的元素。在这里,该函数借助 inout 参数修改原始数组。最后,显示排序后的数组。

import Foundation
import Glibc

// 使用冒泡排序将数组升序排列的函数
func mBubbleSort(_ array: inout [Int]) {
   let size = array.count

   for x in 0..<size {
      for y in 0..<size-x-1 {

         // 比较相邻的两个元素
         if array[y] > array[y+1] {
            // 如果它们的顺序不正确,则交换它们的位置
            let temp = array[y]
            array[y] = array[y+1]
            array[y+1] = temp
         }
      }
   }
}

// 整数类型的数组
var arr = [56, 2, 89, 3, 87, 22, 1, 6, 4]
mBubbleSort(&arr)
print("以升序排序后的数组: \(arr)")

输出

以升序排序后的数组: [1, 2, 3, 4, 6, 22, 56, 87, 89]

结论

这就是如何使用冒泡排序算法以升序排序数组的方法。此算法仅适用于小型元素集,对于更大数量的元素,它的平均时间复杂度和最坏时间复杂度都较高。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 示例