数据结构与算法(算法)
宝山pengyuyan
这个作者很懒,什么都没留下…
展开
-
贪心算法
贪心算法特点:思路:典型例题:1.分糖果2.钱币找零3. 区间覆盖特点:针对一组数据,我们定义了限制值和期望值,希望从中选出几个数据,在满足限制值的情况下,期望值最大。满足这个要求我们就认为大概率使用贪心算法思路:每次选择当前情况下,在对限制值同等贡献量的情况下,对期望值贡献最大的数据。典型例题:1.分糖果我们有 m 个糖果和 n 个孩子。我们现在要把糖果分给这些孩子吃,但是糖果少,...原创 2019-07-28 22:51:07 · 114 阅读 · 0 评论 -
二叉树
总览二叉树是树这种数据结构的一员,后面我们还会介绍红黑树, 前面我们介绍数组的数据结构,我们知道对于有序数组,查找很快,并介绍可以通过二分法查找,但是想要在有序数组中插入一个数据项,就必须将所有插入位置后面的数据项全部向后移动一位,来给新数据腾出空间,平均来讲要移动N/2次,这是很费时的。同理,删除数据也是。然后我们介绍了另外一种数据结构——链表,链表的插入和删除很快,我们只需要改变一些引用...原创 2019-07-28 23:08:04 · 92 阅读 · 0 评论 -
数据结构与算法简介
总体结构数据结构算法原创 2019-07-29 21:52:08 · 98 阅读 · 0 评论 -
数组
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。数组和链表的区别链表适合插入、删除,时间复杂度 O(1),数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)。对数据的操作O(n)插入操作假设数组的长度为 n,现在,如果我们需要将一个数据插入到数组中的第 k 个位置。为了把第 k个位置腾出来,给新来的数据,我们需要将第 k~n ...原创 2019-07-29 22:52:30 · 89 阅读 · 0 评论 -
(数据结构与算法)排序算法
排序算法分类O(n^2^)级别的排序冒泡排序(Bubble Sort)插入排序选择排序(Selection Sort)小结O(nlogn)级别的排序归并排序(Merge Sort)快速排序算法(Quicksort)番外篇O(n) 级别的排序算法桶排序(Bucket sort)计数排序(Counting sort)基数排序(Radix sort)如何实现一个通用的、高性能的排序函数分类O(n2...原创 2019-07-30 21:04:37 · 299 阅读 · 0 评论 -
(数据结构与算法)堆相关
总览今天讲另外一种特殊的树,“堆”(Heap)。堆这种数据结构的应用场景非常多,java中的PriorityQueue,最经典的莫过于堆排序了。堆排序是一种原地的、时间复杂度为 O(nlogn) 的排序算法。它有两个特点:堆是一个完全二叉树;堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。对于每个节点的值都大于等于子树中每个节点值的堆,我们叫作“大顶堆”。对于每个节...原创 2019-07-31 20:15:51 · 109 阅读 · 0 评论 -
(数据结构与算法)图论
图论总览图的储存方法邻接矩阵存储方法邻接表存储方法举例:微博用户的储存方式搜索算法广度优先搜索(BFS)--迭代深度优先搜索(DFS)--递归题目(数据结构与算法之美读书笔记)总览涉及图的算法有很多,也非常复杂,比如图的搜索、最短路径、最小生成树、二分图等等。图和树都是一种非线性表数据结构。我们知道,树中的元素我们称为节点,图中的元素我们就叫作顶点(vertex)。从我画的图中可以看出来...原创 2019-08-01 16:53:20 · 672 阅读 · 0 评论