Swift-Algorithms-Data-Structs Swift算法与数据结构合集

Swift 的算法实现和数据结构写法,一直是挺多人好奇的地方。swift-algorithms-data-structs这个项目就蛮适合拿来练手,也算清晰,代码偏实用风,适合边看边动手。

项目里的代码都用 Swift 写的,基本上就是你常见的那些:快速排序二分查找链表栈队列树结构,甚至还有协议封装的方式,看着清爽,用着顺手。

比较喜欢它的一点是:没啥废话,结构简单明了。每个算法单独一个文件,比如你想看看mergeSort怎么写,直接找文件看就行,注释也比较实在。

像 Swift 里的ArraySet这些原生结构,用习惯了以后,再看项目里自己实现的链表或者栈,感觉会更有代入感。尤其是用协议把各种结构抽象出来,逻辑清楚了,写起自定义类型也方便多了。

再说个实用点的,如果你在搞 iOS 项目,平时对算法接触不多,这项目挺适合你慢慢啃。结合一下Playground去跑跑逻辑,响应也快,调试也舒服。

哦对了,项目没搞可视化,但你可以自己接个SpriteKit或者SceneKit做图形展示,像冒泡排序那种动效跑起来挺带感的,学习过程也更直观。

如果你最近在刷算法题,或者准备写些底层逻辑模块,建议把swift-algorithms-data-structs拉下来,过一遍结构实现,顺手还可以优化一下自己的代码风格。

zip
swift-algorithms-data-structs-master.zip 预估大小:68个文件
folder
swift-algorithms-data-structs-master 文件夹
folder
String Search.playground 文件夹
file
Contents.swift 2KB
file
contents.xcplayground 165B
file
.gitignore 1KB
file
cover-algo-datastruct.png 1.1MB
file
CODE_OF_CONDUCT.md 3KB
file
LICENSE 1KB
file
_config.yml 29B
folder
Data Structures.playground 文件夹
folder
Sources 文件夹
file
QueueElementNode.swift 925B
file
Heap.swift 7KB
file
PriorityQueue.swift 2KB
file
StackElementNode.swift 757B
folder
Resources 文件夹
file
panda.png 3KB
file
frog.png 2KB
file
crocodile.png 2KB
file
horse.png 3KB
file
monkey.png 3KB
file
cow.png 3KB
file
dog.png 3KB
file
hippo.png 3KB
file
snake.png 3KB
file
pig.png 3KB
file
giraffe.png 4KB
file
goat.png 5KB
file
elephant.png 4KB
file
chicken.png 3KB
file
whale.png 3KB
file
chick.png 2KB
file
rabbit.png 4KB
file
parrot.png 3KB
file
buffalo.png 4KB
file
duck.png 3KB
file
penguin.png 3KB
file
zebra.png 3KB
file
walrus.png 3KB
file
gorilla.png 2KB
file
owl.png 3KB
file
book spine.png 33KB
file
bear.png 3KB
file
rhino.png 3KB
file
narwhal.png 4KB
file
sloth.png 3KB
folder
Pages 文件夹
folder
Queue.xcplaygroundpage 文件夹
file
Contents.swift 9KB
folder
BinaryTree.xcplaygroundpage 文件夹
file
Contents.swift 5KB
folder
Linked List.xcplaygroundpage 文件夹
file
Contents.swift 4KB
folder
Graph.xcplaygroundpage 文件夹
file
Contents.swift 7KB
folder
Red-Black Tree.xcplaygroundpage 文件夹
file
Contents.swift 897B
folder
Heap.xcplaygroundpage 文件夹
file
Contents.swift 383B
folder
Main.xcplaygroundpage 文件夹
file
Contents.swift 800B
folder
BinarySearchTree.xcplaygroundpage 文件夹
file
Contents.swift 12KB
folder
PriorityQueue.xcplaygroundpage 文件夹
file
Contents.swift 202B
folder
Tree.xcplaygroundpage 文件夹
file
Contents.swift 2KB
folder
Stack.xcplaygroundpage 文件夹
file
Contents.swift 10KB
folder
DoublyLinkedList.xcplaygroundpage 文件夹
file
Contents.swift 5KB
folder
Dequeue.xcplaygroundpage 文件夹
file
Contents.swift 3KB
folder
CircularBuffer.xcplaygroundpage 文件夹
file
Contents.swift 5KB
file
contents.xcplayground 626B
file
README.md 8KB
folder
Sort.playground 文件夹
folder
Pages 文件夹
folder
Quick-Hoare-Scheme.xcplaygroundpage 文件夹
file
Contents.swift 1KB
folder
Bubble.xcplaygroundpage 文件夹
file
Contents.swift 740B
folder
Radix.xcplaygroundpage 文件夹
file
Contents.swift 914B
folder
Quick-Lomuto-Scheme.xcplaygroundpage 文件夹
file
Contents.swift 1KB
folder
Merge.xcplaygroundpage 文件夹
file
Contents.swift 3KB
folder
Shell.xcplaygroundpage 文件夹
file
Contents.swift 904B
folder
Insertion.xcplaygroundpage 文件夹
file
Contents.swift 788B
file
contents.xcplayground 397B
folder
Search.playground 文件夹
folder
Pages 文件夹
folder
Binary.xcplaygroundpage 文件夹
file
Contents.swift 2KB
folder
Linear.xcplaygroundpage 文件夹
file
Contents.swift 573B
file
contents.xcplayground 203B
...
zip 文件大小:1.28MB