Swift实现冒泡排序算法

Swift实现冒泡排序算法

在Swift中,冒泡排序算法是最简单的搜索算法之一。该算法通过重复交换相邻元素的位置直到它们位于正确的位置上来对元素进行排序。由于该算法的平均和最坏情况下的时间复杂度都较高,所以它只适用于较小的元素集合,不适用于较大的元素集合。冒泡排序的工作原理如下:

假设我们有以下数组-

Swift实现冒泡排序算法

现在我们使用冒泡排序按升序对数组进行排序。从第一个索引开始比较第一个和第二个元素。如果第一个元素大于第二个元素,则交换它们的位置。同样比较第二个和第三个元素,如果第二个元素大于第三个元素,则交换它们的位置。这个过程一直持续到最后一个未排序的元素。

第一次迭代

Swift实现冒泡排序算法

第二次迭代

在第二次迭代中,我们必须再次按照同样的步骤执行,直到最后一个元素。

Swift实现冒泡排序算法

这就是我们如何使用冒泡排序对数组进行排序的方法。

算法

  • Step 1 – 创建一个函数,使用冒泡排序算法按升序对数组进行排序。

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

  • Step 3 – 检查array[y]>array[y+1]。如果是,那么交换这两个元素的位置。如果不是,则移动到下一对。

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

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

  • Step 6 – 打印排序后的数组。

示例

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

import Foundation
import Glibc

// Function to sort array using bubble sort
func myBubbleSort(_ array: inout [Int]) {
   let size = array.count

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

         // Compare two adjacent elements
         if array[y] > array[y+1] {
            // Swap the elements if they are 
            // not in the correct order 
            let temp = array[y]
            array[y] = array[y+1]
            array[y+1] = temp
         }
      }
   }
}

// Array of integer type
var arr = [10, 87, 2, 90, 34, 1, 6, 78]
myBubbleSort(&arr)
print("Sorted array: \(arr)")

输出

Sorted array: [1, 2, 6, 10, 34, 78, 87, 90]

结论

这就是我们如何实现冒泡排序算法的方法。它仅适用于小数据集。平均和最坏情况的时间复杂度是O(n2),其中n被称为项目数量。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Swift 教程