swift数据结构算法
时间: 2023-10-05 11:12:57 浏览: 151
Swift 是一种面向对象的编程语言,可以用于实现各种数据结构和算法。下面是一些常用的数据结构和算法的 Swift 实现:
1. 数组(Array):Swift 的数组可以存储同一类型的元素,并且支持动态扩展和收缩。例如:
```
var array = [1, 2, 3, 4, 5]
array.append(6)
array.removeLast()
```
2. 链表(Linked List):链表是一种动态数据结构,可以在运行时添加或删除元素。例如:
```
class ListNode {
var val: Int
var next: ListNode?
init(_ val: Int) {
self.val = val
self.next = nil
}
}
var head = ListNode(1)
head.next = ListNode(2)
head.next?.next = ListNode(3)
```
3. 栈(Stack):栈是一种后进先出(LIFO)的数据结构。Swift 的数组可以很方便地实现栈。例如:
```
var stack = [Int]()
stack.append(1)
stack.append(2)
stack.popLast()
```
4. 队列(Queue):队列是一种先进先出(FIFO)的数据结构。Swift 的数组也可以实现队列,但效率不高。可以使用双端队列(Deque)来实现。例如:
```
struct Deque<T> {
private var left = [T]()
private var right = [T]()
mutating func enqueue(_ element: T) {
right.append(element)
}
mutating func dequeue() -> T? {
if left.isEmpty {
left = right.reversed()
right.removeAll()
}
return left.popLast()
}
}
var queue = Deque<Int>()
queue.enqueue(1)
queue.enqueue(2)
queue.dequeue()
```
5. 哈希表(Hash Table):哈希表是一种键值对存储的数据结构。Swift 的字典(Dictionary)就是哈希表的一种实现。例如:
```
var dict = [String: Int]()
dict["one"] = 1
dict["two"] = 2
dict["one"]
```
6. 排序算法:Swift 提供了快速排序(Quick Sort)、归并排序(Merge Sort)、堆排序(Heap Sort)等常见的排序算法的实现。例如:
```
func quickSort<T: Comparable>(_ array: [T]) -> [T] {
guard array.count > 1 else { return array }
let pivot = array[array.count / 2]
let less = array.filter { $0 < pivot }
let equal = array.filter { $0 == pivot }
let greater = array.filter { $0 > pivot }
return quickSort(less) + equal + quickSort(greater)
}
let array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
quickSort(array)
```
阅读全文