数据结构与算法基础知识
文章平均质量分 66
数据结构与算法基础知识
安倾i
这个作者很懒,什么都没留下…
展开
-
归并排序
归并排序 归并排序基于归并这个简单的操作, 归并:即将两个有序的数组归并成一个更大的有序数组 归并地实现: 一种直截了当的方法是将两个不同的有序数组归并到第三个数组中,两个数组中的元素应该都实现了Comparable接口。 实现的方法:创建一个适当大小的数组然后将两个输入数组的元素一个个从小到大放入这个数组中。 原地归并的抽象方法:** 可以先将前半部分排序,再将后半部分排序,然后在数组中移动元素而不需要使用额外的空间**。 merge(a, lo, mid, hi) : 它会将子数组a[lo…mid]和a原创 2020-08-29 22:36:24 · 261 阅读 · 0 评论 -
选择排序
选择排序的原理 1、首先,找到数组中最小的那个元素, 2、其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。 3、再次,在剩下的元素中找到最小的元素,将它与数组中的第二个元素交换位置。如此往复,知道将整个数组排序 它在不断地选择剩余元素之中的最小者 该算法将第i小的元素放在a[i]之中,数组的第i个位置的左边是i个最小的元素且它们不会被访问 选择排序的内循环只是在比较当前元素与目前已知的最小元素(以及将当前索引加1和检查是否代码越界)。 交换元素的代码写在内循环之外,每次原创 2020-08-29 22:24:42 · 92 阅读 · 0 评论 -
存储图的方式
参考: vector的使用 https://blog.csdn.net/tpriwwq/article/details/80609371 图分为有向图 无向图 存图的几种方法 较好的存图能满足的要求 1)能表示图中的结点相连的情况 2)获得能表示图中的结点相连边的权重 3)考虑空间 像邻接矩阵的空间复杂度为O(n^2) 4)能知道一个结点 所连的所有结点的边的情况 1、邻接矩阵 使用二维数组map[][]存储两个边的连接情况 可以map[i][j] = 1表示 i和j是有边的 是连接的 也可以map[i原创 2020-08-28 03:49:55 · 237 阅读 · 0 评论 -
建树的两种方法
数组建树 问题 K: 查找二叉树 时间限制:1 Sec内存限制:128 MB 提交:72解决:37 [提交][状态][讨论版][命题人:外部导入] 题目描述 已知一棵二叉树用邻接表结构存储,中序查找二叉树中值为x的结点,并指出是 第几个结点。 输入 第一行n为二叉树的结点个树,n<=100;第二行x表示要查找的结点的值;以下第一列数据是各结点...原创 2018-08-07 20:28:29 · 9915 阅读 · 0 评论