Fork me on GitHub

随笔分类 -  算法与数据结构

摘要:"算法设计与分析之入门篇" 跟着视频学习,感觉这里面的主要算法很重要! 对很多经典的问题理解不够。 复杂度分析 低阶函数 同阶函数 高阶函数 master定理求解阶数/迭代法求解具体的 递归方程 整数划分问题 C //2 4 整数划分问题 include "stdafx.h" include usi 阅读全文
posted @ 2017-06-11 20:56 ranjiewen 阅读(2266) 评论(0) 推荐(0) 编辑
摘要:layout: post title: 散列查找(哈希表) date: 2017 05 20 tag: 数据结构和算法 目录 TOC {:toc} 散列表 现有的查找算法,对数据量特别大的时候不适用 填装因子(Loading Factor):设散列表空间大小为m,填入表中元素个数为n,则a=n/m为 阅读全文
posted @ 2017-05-20 20:25 ranjiewen 阅读(2771) 评论(1) 推荐(0) 编辑
摘要:layout: post title: 数据结构学习笔记排序 (快速,表排序,基数排序) date: 2017 05 20 tag: 数据结构和算法 "基数排序与桶排序,计数排序【详解】" 目录 TOC {:toc} 快速排序 不稳排序 采用分而治之思想 最好的情况:每次主元正好中分,T(N)=O( 阅读全文
posted @ 2017-05-20 18:01 ranjiewen 阅读(1315) 评论(0) 推荐(0) 编辑
摘要:问题描述: 旅行商问题(Traveling Salesman Problem,TSP)是旅行商要到若干个城市旅行,各城市之间的费用是已知的,为了节省费用,旅行商决定从所在城市出发,到每个城市旅行一次后返回初始城市,问他应选择什么样的路线才能使所走的总费用最短?此问题可描述如下:设G=(V,E)是一个 阅读全文
posted @ 2017-05-05 23:27 ranjiewen 阅读(6991) 评论(0) 推荐(0) 编辑
摘要:数据结构学习笔记排序 (冒泡、插入、希尔、堆排序、归并排序) 前提void X_Sort ( ElementType A[], int N ) 大多数情况下,为简单起见,讨论从小大的整数排序 N是正整数 只讨论基于比较的排序( = = 0;P ) { int flag = 0; for (int i 阅读全文
posted @ 2017-05-01 17:47 ranjiewen 阅读(667) 评论(0) 推荐(0) 编辑
摘要:layout: post title: 最小生成树 Prim Kruskal date: 2017 04 29 tag: 数据结构和算法 目录 TOC {:toc} 拓扑排序(AOV网络) 排课的时候,根据课程的难易程度及知识体系有些课是要先上有些课需要后上,那么在给定了一些课的先后顺序,我们怎样来 阅读全文
posted @ 2017-04-29 20:55 ranjiewen 阅读(600) 评论(0) 推荐(0) 编辑
摘要:layout: post title: 最小生成树 Prim Kruskal date: 2017 04 29 tag: 数据结构和算法 目录 TOC {:toc} 最小生成树Minimum Spanning Tree 一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 阅读全文
posted @ 2017-04-29 18:01 ranjiewen 阅读(877) 评论(0) 推荐(0) 编辑
摘要:layout: post title: 最短路径算法表示 date: 2017 04 16 tag: 数据结构和算法 目录 TOC {:toc} 最短路径问题 两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径;第一个顶点为源点(Source);最后一个顶点为终点(Destination) 阅读全文
posted @ 2017-04-16 15:31 ranjiewen 阅读(1347) 评论(0) 推荐(0) 编辑
摘要:中国大学MOOC 陈越、何钦铭 数据结构 2017春 "学习地址" "详细学习内容" "Github记录地址" 欢迎fork和star,有惊喜值得学习! "参考学习笔记" "参考AC代码" "数据结构和算法学习笔记" 学习内容 第一讲 基本概念 [陈越] 1.1 什么是数据结构 1.2 什么是算法 阅读全文
posted @ 2017-04-12 23:00 ranjiewen 阅读(3359) 评论(0) 推荐(0) 编辑
摘要:图的邻接矩阵表示 图基概念(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V有向边 表示从v指向w的边(单行线)不考虑重边和自回路 无向图:边是无向边(v, w) 有向图:边是 阅读全文
posted @ 2017-04-11 13:24 ranjiewen 阅读(4902) 评论(0) 推荐(0) 编辑
摘要:哈夫曼树与哈弗曼编码 哈夫曼树 带权路径长度(WPL):设二叉树有n个叶子结点,每个叶子结点带有权值 Wk,从根结点到每个叶子结点的长度为 Lk,则每个叶子结点的带权路径长度之和就是: WPL = 最优二叉树或哈夫曼树: WPL最小的二叉树 哈夫曼树的特点: 哈夫曼树的构造 每次把权值最小的两颗二叉 阅读全文
posted @ 2017-04-09 12:43 ranjiewen 阅读(1380) 评论(0) 推荐(0) 编辑
摘要:什么是堆 优先队列( Priority Queue):特殊的“队列” ,取出元素的顺序是 依照元素的优先权(关键字) 大小,而不是元素进入队列的先后顺序 问题:如何组织优先队列?  一般的数组、链表?  有序的数组或者链表?  二叉搜索树? AVL树 产生了堆这种数据结构,知道基本操作集 增查 阅读全文
posted @ 2017-04-08 01:04 ranjiewen 阅读(444) 评论(0) 推荐(0) 编辑
摘要:平衡二叉树-课程视频 平衡二叉树-课程视频 An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by 阅读全文
posted @ 2017-04-02 00:05 ranjiewen 阅读(752) 评论(0) 推荐(0) 编辑
摘要:reference:二叉树可视化--Graphviz 二叉树的图形显示 阅读全文
posted @ 2017-03-30 00:22 ranjiewen 阅读(1771) 评论(0) 推荐(0) 编辑
摘要:栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。栈和队列被广泛应用于各种程序设计中。 队列的基本概念 队列(Queue):也是运算受限的线性表。是一种先进先出(FirstIn First Out ,简称FIFO)的线性表。只允 阅读全文
posted @ 2017-03-19 13:59 ranjiewen 阅读(985) 评论(0) 推荐(0) 编辑
摘要:这几天搞连通域的问题;其中用的数据结构就是顺序的数组实现的类似链表的操作,思想是一样的,但他没有写成标准的形式,总是感觉怪怪的。根据《中国大学MOOC-陈越、何钦铭-数据结构-2017春》学习计划,突然理解,线性表的顺序存储又分为静态的和动态的,即初始化的方法区别,在嵌入式的系统中用静态的,提前开辟 阅读全文
posted @ 2017-03-16 23:57 ranjiewen 阅读(675) 评论(0) 推荐(0) 编辑
摘要:栈的顺序存储表示 栈的顺序存储结构简称为顺序栈,和线性表相类似,用一维数组来存储栈。根据数组是否可以根据需要增大,又可分为静态顺序栈和动态顺序栈。静态顺序栈实现简单,但不能根据需要增大栈的存储空间;动态顺序栈可以根据需要增大栈的存储空间,但实现稍为复杂。 栈的动态顺序存储表示 采用动态一维数组来存储 阅读全文
posted @ 2017-03-16 21:20 ranjiewen 阅读(1258) 评论(0) 推荐(1) 编辑
摘要:生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会造成巨大的内存浪费;链式队列是 阅读全文
posted @ 2017-02-25 20:22 ranjiewen 阅读(2948) 评论(0) 推荐(0) 编辑
摘要:按照书上的要求实现了一下单链表;单链表的实现可能以前看过几次了;现在想想最主要的几个操作算法应该能够写了吧;遇到的问题: 1. 链表节点写成private;所已给出了访问的接口; 2.模板类的.h和.cpp实现写在同一个文件; 3.感觉以后的数据结构实现还是用纯c的实现好一些;然后书主要是思路 节点 阅读全文
posted @ 2017-02-21 21:06 ranjiewen 阅读(302) 评论(0) 推荐(0) 编辑
摘要:1. AVL定义 AVL树是一种改进版的搜索二叉树。对于一般的搜索二叉树而言,如果数据恰好是按照从小到大的顺序或者从大到小的顺序插入的,那么搜索二叉树就对退化成链表,这个时候查找,插入和删除的时间都会上升到O(n),而这对于海量数据而言,是我们无法忍受的。即使是一颗由完全随机的数据构造成的搜索二叉树 阅读全文
posted @ 2016-11-29 10:35 ranjiewen 阅读(1307) 评论(0) 推荐(0) 编辑