Swift 程序使用冒泡排序对数组进行降序排序

swiftserver side programmingprogramming更新于 2025/9/23 12:22:17

Swift 中的冒泡排序算法是最简单的搜索算法。该算法通过反复交换相邻元素(如果它们不在正确的位置)来对元素进行排序。所以现在我们使用冒泡排序对数组进行降序排序。

例如 -

数组 - [4, 7, 1, 8]
  • 第一次迭代 - 比较两个元素,如果第一个元素小于第二个元素,则交换它们的位置。如果不是,则移至下一对。

[4, 7, 1, 8] 4<7,交换位置
[7, 4, 1, 8] 4>1,保持不变
[7, 4, 1, 8] 1<8,交换位置
[7, 4, 8, 1]
  • 第二次迭代 − 再次比较两个元素,如果第一个元素小于第二个元素,则交换它们的位置。

[7, 4, 8, 1] 7>4,保持不变
[7, 4, 8, 1] 4<8,交换位置
[7, 8, 4, 1] 4>1,保持不变
  • 第三次迭代 − 再次比较两个元素,如果第一个元素小于第二个元素,则交换它们的位置。

[7, 8, 4, 1] 7<8,交换位置
[8, 7, 4, 1] 7>4,保持不变
[8, 7, 4, 1] 4>1,保持不变
因此,按降序排列的数组为 [8, 7, 4, 1]

算法

  • 步骤 1 − 创建一个函数,使用冒泡排序算法对数组进行降序排序。

  • 步骤2 − 在函数内部,我们运行嵌套的 for-in 循环来遍历给定数组中的每一对相邻元素。

  • 步骤 3 − 检查 array[y]

  • 步骤 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
         }
      }
   }
}

// Array of integer type
var arr = [67, 3, 22, 89, 12, 1, 55, 80, 4]
mBubbleSort(&arr)
print("按降序排列的数组:\(arr)")

输出

按降序排列的数组:[89, 80, 67, 55, 22, 12, 4, 3, 1]

结论

以上就是如何使用冒泡排序对数组进行降序排序的方法。该算法仅适用于元素数量较少的情况,由于其平均和最坏情况的时间复杂度较高,因此不适用于元素数量较多的情况。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部