数据结构
文章平均质量分 55
chiyustory
一直在进步
展开
-
数据结构(链表、链栈、链队列、二叉树、图)
本文用于总结数据结构(链表、链栈、链队列、二叉树、图)的创建方式与遍历方式!!!本目录代码已上传至github中!!!1. 链表1. 线性表顺序存储和链式存储的优缺点?顺序存储:a.不需要增加额外的存储空间,快速存取指向位置的元素;b.在插入和删除过程中,需要移动大量元素;c.需要预先分配存储空间;链式存储:a.插入删除操作时间为O(1);b.用任意位置的存储单元存...原创 2018-05-02 09:09:05 · 10223 阅读 · 0 评论 -
分治算法
1. 递归递归可分开理解为去和回,先深入到各个子问题中,解决了之后,再一步步回来。2. 编写递归程序的步骤a. 递归截止的条件b. 递归截止如何处理c. 提取重复步骤,进行递归3. 分治法首先将问题分解为子问题,然后递归的去解决这些问题,最后将子问题的解合并为原问题的解。4. 编写分支法程序的步骤a. 分解原问题为子问题b. 递归解决子问题c. 合...原创 2020-09-28 07:19:26 · 364 阅读 · 0 评论 -
贪心算法
贪心算法制定贪心策略,每次仅考虑局部最优解(贪心策略下),而不是从全局上来考虑最优解,所以最终的结果是通过局部最优解近似全局最优解。所以关键问题是贪心策略如何选择!其与动态规划的相似之处是都是求解最小问题的最优解,最大区别是动态规划需要保存之前的最小问题的最优解,以此来计算另一问题的最优解,而贪心算法则不需要保存之前的最小问题的最优解。题目一背包问题,若背包总容量是15...原创 2018-08-19 15:50:22 · 1815 阅读 · 0 评论 -
动态规划算法
动态规划思想通过状态转移方程将大问题分解为小问题,找到小问题的最优解,然后基于此小问题的最优状态获得另一问题的最优解。具体做法是将各个小问题的最优解存入数组中,然后基于其来获取当前问题的最优解。在应用中就是找规律,将此规律用状态转移方程来表示。以下通过例题来学习此算法!!!题目一:有1,3,5三种面值的硬币,找到总值为16元的最少硬币数量?获得d(0)、d(1)、d...原创 2018-08-19 08:50:26 · 207 阅读 · 0 评论 -
八大排序算法
本文用于总结数据结构中的八大排序算法(基数排序占坑)!!!数据结构的所有代码更新在github库!!!简单排序算法:冒泡排序、直接插入排序、简单选择排序改进排序算法:希尔排序、堆排序、归并排序、快速排序 冒泡排序算法思路:两个for...原创 2018-05-24 10:54:37 · 173 阅读 · 0 评论 -
查找算法
本文用于学习各种查找算法(先列出四种查找算法)!!!1. 二分查找算法在顺序存储表中,迭代中间值下标,若给定值小于中间值则在左边寻找,更新最右下标;若给定值大于中间值则在右边寻找,更新最左下标;直到给定值等于中间值返回#include <iostream>using namespace std;int binary_search(int *arr, int le...原创 2018-05-14 12:02:07 · 137 阅读 · 0 评论 -
回溯算法
1.回溯算法思想适用于解决问题的每一步都有多种选择的情况。当在某一步选择了其中一个选项时,则进入此选项,然后继续新的选择。若选择符合题目要求则此选择是正确的;若此选择不符合题目要求则此选择是不正确的,此时就需要返回上一步,重新进行选择。一般使用递归的方式去实现递归算法。2.回溯算法编程步骤a. 声明访问标志位,寻找正确的起始位置;b. 递归进入下一步,并设置递归截止条件和...原创 2020-09-28 07:19:38 · 1401 阅读 · 0 评论