数据结构与算法
文章平均质量分 77
rainlua
这个作者很懒,什么都没留下…
展开
-
动态规划算法
一. 动态规划设sum[i]为以第i个元素结尾且和最大的连续子数组。假设对于元素i,所有以它前面的元素结尾的子数组的长度都已经求得,那么以第i个元素结尾且和最大的连续子数组实际上,要么是以第i-1个元素结尾且和最大的连续子数组加上这个元素,要么是只包含第i个元素,即sum[i] = max(sum[i-1] + a[i], a[i])。可以通过判断sum[i-1] + a[i]是否大于a[i]转载 2017-08-10 16:23:35 · 177 阅读 · 0 评论 -
数据结构与算法(三)--二叉树
一:树(理论学习) 我们思维中的”树“就是一种枝繁叶茂的形象,那么数据结构中的”树“该是怎么样呢?对的,他是一种现实中倒立的树。 1:术语 其实树中有很多术语的,这个是我们学习树形结构必须掌握的。 父节点,子节点,兄弟节点 这个就比较简单了,B和C的父节点就是A,反过来说就是B和C是A的子节点。B和C就是兄原创 2017-08-03 17:54:29 · 250 阅读 · 0 评论 -
数据结构与算法(二)--哈希函数
1.哈希表的理解a:C++的stl模板STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展转载 2017-08-01 14:01:22 · 346 阅读 · 0 评论 -
C++复习--链表数组
1.动态数组的创建//动态数组的创建int cloum, row;//申请空间int **a = new int*[cloum];for (int i = 0; i < cloum; i++){ a[i]=new int* [row];}原创 2017-07-20 11:06:26 · 1027 阅读 · 0 评论 -
算法复习--排序
排序中主要有插入排序、冒泡排序、归并排序、快速排序等主要从空间消耗、时间复杂度、最差时间复杂度等方面考虑算法的好处;1.插入排序插入排序是一种简单直观的排序算法。它的工作原理非常类似于我们抓扑克牌 对于未排序数据(右手抓到的牌),在已排序序列(左手已经排好序的手牌)中从后向前扫描,找到相应位置并插入。 插入排序在实现上,通常采用in-place排序(即原创 2017-08-04 17:20:00 · 213 阅读 · 0 评论 -
算法基础学习(一)--基础复习
1.数组最简单的数据存储结构,连续内存,需要预先分配空间先来了解一下时间效率:算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的原创 2017-07-25 20:23:34 · 361 阅读 · 0 评论