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

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

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

例如-

Array - [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] < 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 = [67, 3, 22, 89, 12, 1, 55, 80, 4]
mBubbleSort(&arr)
print("Sorted array in descending order: \(arr)")

输出

Sorted array in descending order: [89, 80, 67, 55, 22, 12, 4, 3, 1]

结论

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 示例