![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
算法与数据结构介绍
shiyivei
for science,art and meaning
展开
-
数据结构与算法 - 2 递归排序
2. 基础知识2.1 递归汉诺塔问题求解:递推公式:h(n)=2h(n-1)+1时间复杂度:2的n次方汉诺塔问题的核心在于递归思想:也就说无论塔有多少个,每次都是把它分为两部分,最底层和其余func hanoi(n int, a, b, c string) { if n > 0 { hanoi(n-1, a, c, b) fmt.Printf("moving from %s to %s\n", a, c) hanoi(n-1, b, a, c) }}//Test ex原创 2022-03-16 19:41:51 · 874 阅读 · 0 评论 -
数据结构与算法 - 3 常见排序算法
3. 排序算法3.1 冒泡排序列表每两个相邻的数,如果前面的数比后面大,则交换这两个数每一趟完成,无序区域减少一个数,有序区域增加一个数代码的关键点:趟、无序区范围;算法复杂度:O(n*n)代码示例://Test example//func main() {// nums := []int{2, 14, 11, 15, 35, 1, 9, 6, 100, 26, 7, 8}// a := BubbleSort(nums)// fmt.Println(a)//}func Bubbl原创 2022-03-17 17:09:52 · 1013 阅读 · 0 评论 -
数据结构与算法 - 1 查找算法
1.查找算法本章我们会介绍一些常见的算法,代码均用golang编写,读者可自行参考使用1.1 顺序查找顺序查找最为简单,写一个for循环即可时间复杂度:O(n)//Test example//func main() {//// s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}// v := 5//// result := BLC.SequentialSearch(s, v)// if result != -1 {// fmt.Println(resul原创 2022-03-16 19:38:02 · 725 阅读 · 0 评论 -
数据结构与算法 - 6 数据结构
介绍列表、栈和队列基础知识原创 2022-03-21 21:19:25 · 192 阅读 · 0 评论 -
数据结构与算法 - 5 其它排序
5. 其它排序5.1 桶排序首先将元素分在不同的桶中,再对每个桶中的元素进行排序桶排序的效率取决于数据分布:平均情况O(n + k);最坏的情况O(kn*n);空间复杂度;O(nk)代码实现//Test examplefunc main() { var slice []int rand.Seed(time.Now().UnixNano()) for index := 0; index <= 10; index++ { num := rand.Intn(100) slic原创 2022-03-20 18:42:11 · 138 阅读 · 0 评论 -
数据结构与算法 - 4 堆
4. 堆4.1 树与二叉树树是一种数据结构,比如目录结构树是一种可以递归定义的数据结构树是由n个节点组成的集合:如果n=0,那这是一棵空树;如果n>0,那存在一个节点作为树的根节点,其他节点可以分为m个集合,每个集合本身又是一棵树二叉树:度不超过二的树满二叉树:除了叶子节点,其它节点都有左子树和右子树完全二叉树:叶节点只能出现在最下层和次下层,并且最下面一层的节点都集中在该层最左边的若干位置的二叉树二叉树的存储方式:链式存储和顺序存储二叉树顺序存储方式下的编号:左:i -> 2原创 2022-03-18 18:24:25 · 659 阅读 · 0 评论