用kotlin实现希尔排序
时间: 2023-11-27 12:46:51 浏览: 37
```kotlin
fun shellSort(arr: IntArray) {
var gap = arr.size / 2
while (gap > 0) {
for (i in gap until arr.size) {
val temp = arr[i]
var j = i
while (j >= gap && arr[j - gap] > temp) {
arr[j] = arr[j - gap]
j -= gap
}
arr[j] = temp
}
gap /= 2
}
}
```
--相关问题--:
1. Kotlin还有哪些常用的排序算法?
2. Kotlin
相关问题
使用kotlin实现冒泡排序
当然可以,以下是使用 Kotlin 实现冒泡排序的代码:
fun bubbleSort(arr: IntArray) {
val n = arr.size
for (i in 0 until n - 1) {
for (j in 0 until n - i - 1) {
if (arr[j] > arr[j + 1]) {
val temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
}
// 示例
fun main() {
val arr = intArrayOf(64, 34, 25, 12, 22, 11, 90)
bubbleSort(arr)
println("排序后的数组:")
for (i in arr) {
print("$i ")
}
}
输出结果为:11 12 22 25 34 64 90
kotlin实现排序算法
Kotlin可以实现各种类型的排序算法,比如插入排序、冒泡排序、快速排序等等。以下是快速排序的Kotlin实现示例:
```kotlin
fun quickSort(list: MutableList<Int>, low: Int, high: Int) {
if (low >= high) return
val m = partition(list, low, high)
quickSort(list, low, m - 1)
quickSort(list, m + 1, high)
}
fun partition(list: MutableList<Int>, low: Int, high: Int): Int {
var i = low
var j = high + 1
val pivot = list[low]
while (true) {
while (list[++i] < pivot) if (i == high) break
while (list[--j] > pivot) if (j == low) break
if (i >= j) break
swap(list, i, j)
}
swap(list, low, j)
return j
}
fun swap(list: MutableList<Int>, i: Int, j: Int) {
val temp = list[i]
list[i] = list[j]
list[j] = temp
}
```
使用示例:
```kotlin
fun main() {
val list = mutableListOf(4, 2, 8, 1, 3, 9, 7, 6, 5)
quickSort(list, 0, list.size - 1)
println(list)
}
```
输出结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]