fighting300 / Swift-algorithm

Swift算法

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swift-algorithm

0.大O表示法

大O 名称 描述
O(1) 常数级 例如:基于索引取出数组中对应的元素,最好的
O(log n) 对数级 例如:二分查找,相当好
O(n) 线性级 例如:线性查找,还不错
O(nlog n) 线性对数级 例如:最快的通用排序算饭,还可以
O(n^2) 二次方级 例如:循环套循环的算法,插入排序,有点慢
O(n^3) 三次方级 例如:矩阵乘法,特别慢
O(2^n) 指数级 例如:旅行商问题,超级慢
O(n!) 阶乘级 例如:二分查找

1.数据结构

(1)数组变体

二维数组

(2)队列

队列

(3)列表

链表

(4)树

二叉树
二叉搜索树(BST)
字典树(Trie)

(5)哈希

哈希表

(6)集合

哈希集合

(7)图

广度优先搜索
深度优先搜索

2.搜索算法

线性搜索

二分搜索

统计出现次数

3.字符串搜索算法

Brute-Forece算法

Boyer-Moore算法

4.排序算法

(1)基本排序算法

插入排序
选择排序
希尔排序

(2)快速排序算法

快速排序
归并排序
堆排序

(3)不好的排序

冒泡排序

4.压缩算法

变动长度编码法(RLE)

哈夫曼编码

About

Swift算法


Languages

Language:Swift 100.0%