-
Notifications
You must be signed in to change notification settings - Fork 48
/
Copy pathmain.swift
79 lines (66 loc) · 2.12 KB
/
main.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//
// main.swift
// Sort
//
// Created by ggl on 2019/4/16.
// Copyright © 2019年 ggl. All rights reserved.
//
import Foundation
var randomArray = [Int]()
for _ in 0..<10 {
randomArray.append(Int.random(in: 0...30))
}
print("原始随机数组:\(randomArray)")
// 冒泡排序
let bubbleSortArray = bubbleSort(randomArray)
print("冒泡排序结果:\(bubbleSortArray)")
// 插入排序
let insertionSortArray = insertionSort(randomArray)
print("插入排序结果:\(insertionSortArray)")
// 希尔排序
let shellSortArray = shellSort(randomArray)
print("希尔排序结果:\(shellSortArray)")
// 选择排序
let selectionSortArray = selectionSort(randomArray)
print("选择排序结果:\(selectionSortArray)")
// 归并排序
let mergeSortArray = mergeSort(randomArray)
print("归并排序(自顶向下)结果:\(mergeSortArray)")
// 归并排序
let mergeSortArray1 = mergeSort(randomArray)
print("归并排序(自底向上)结果:\(mergeSortArray1)")
// 快速排序
let quickSortArray = quickSort(randomArray)
print("快速排序结果:\(quickSortArray)")
print("\n")
// 桶排序
var doubleRandomArray = [Double]()
for _ in 0..<10 {
let num = Double.random(in: 0...30)
doubleRandomArray.append(num)
}
print("桶排序原始数据:\(doubleRandomArray)")
let bucketSortArray = bucketSort(doubleRandomArray)
print("桶排序的结果:\(bucketSortArray)")
print("\n")
// 计数排序
//let countingArray = [2, 5, 3, 0, 2, 3, 0, 3]
var countingArray = [Int]()
for _ in 0..<30 {
let num = Int.random(in: -5...10)
countingArray.append(num)
}
print("计数排序原始数据:\(countingArray)")
let countingSortArray = countingSort(countingArray)
print("计数排序的结果:\(countingSortArray)")
print("\n")
// 基数排序
let radixArray = [53, 3, 542, 748, 14, 214, 154, 63, 616]
print("基数排序原始数据:\(radixArray)")
let radixSortArray = radixSort(radixArray, 3)
print("基数排序的结果:\(radixSortArray)")
print("\n")
// 查找一组数据的第K大元素
let kth = 3
let kNum = findKBigElement(randomArray, kth: kth)
print("数组:\(randomArray) 的第\(kth)大元素是:\(kNum)")