swift写冒泡排序
时间: 2023-09-03 17:27:45 浏览: 71
### 回答1:
好的,下面是 Swift 写的冒泡排序代码:
```
func bubbleSort(_ array: inout [Int]) {
for i in 0..<array.count {
for j in 1..<array.count-i {
if array[j] < array[j-1] {
let temp = array[j-1]
array[j-1] = array[j]
array[j] = temp
}
}
}
}
var list = [10, -1, 3, 9, 2, 27, 8, 5, 1, 3, 0, 26]
bubbleSort(&list)
print(list)
```
在代码中,我们通过两重循环,从前往后比较相邻的两个数,如果需要交换,就交换。循环多次后,最大的数会“冒泡”到最后。
### 回答2:
冒泡排序是一种简单直观的排序算法,它重复地遍历要排序的列表,比较相邻的两个元素,如果顺序错误则交换它们,直到没有元素需要交换为止。下面是用 Swift 实现冒泡排序的代码:
```Swift
func bubbleSort(_ array: inout [Int]) {
let count = array.count
guard count > 1 else {
return
}
for i in 0..<count - 1 {
for j in 0..<count - 1 - i {
if array[j] > array[j + 1] {
array.swapAt(j, j + 1)
}
}
}
}
// 测试示例
var numbers = [5, 2, 9, 1, 8]
bubbleSort(&numbers)
print(numbers) // 输出:[1, 2, 5, 8, 9]
```
在上述代码中,我们先定义一个名为 `bubbleSort` 的函数,它接受一个传入的整型数组作为参数,并使用 `inout` 关键字使得传入的参数能够被修改。然后,我们获取数组的长度,并通过两层嵌套的 `for` 循环来遍历数组进行比较和交换。
内层的循环中,我们使用 `array[j] > array[j + 1]` 来比较相邻的两个元素的大小关系,如果前一个元素大于后一个元素,则交换它们的位置。
外层的循环用于控制比较和交换的次数,每次循环将会把当前未排序的最大元素移动到末尾,因此,最多需要比较 `count - 1` 次。
最后,我们可以使用给定的示例测试用例来验证我们的冒泡排序算法的正确性。
### 回答3:
冒泡排序是一种简单的排序算法,它可以通过不断比较相邻的元素并交换位置来实现排序。以下是使用Swift编写的冒泡排序算法代码:
```swift
func bubbleSort(_ nums: inout [Int]) {
let n = nums.count
var swapped = false
for i in 0..<n-1 {
swapped = false
for j in 0..<n-i-1 {
if nums[j] > nums[j+1] {
nums.swapAt(j, j+1)
swapped = true
}
}
if !swapped {
break
}
}
}
// 测试算法
var nums = [5, 2, 8, 1, 3]
bubbleSort(&nums)
print(nums) // 输出 [1, 2, 3, 5, 8]
```
在上述代码中,我们定义了一个bubbleSort函数,它接受一个整数数组nums作为参数,并使用inout关键字将其标记为可修改。这是因为我们将在函数内部修改数组。
我们还定义了一个布尔变量swapped,用于检测是否进行了交换。如果在一趟循环中没有进行任何交换,则说明数组已经排序完成,可以提前终止排序过程。
在外部的第一个循环中,我们需要迭代n-1次,每次迭代可以确定一个最大的元素放在数组的末尾。然后在内部的第二个循环中,我们将当前元素与下一个元素进行比较,如果前者大于后者,则交换它们的位置。
最后,我们在外部循环结束后检查是否进行了交换,如果没有,则说明数组已经排好序,可以提前结束排序。
以上是使用Swift编写冒泡排序的示例代码。希望对你有帮助!
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)