涵盖了绝大多数算法设计中的常用技术。
在表达每一种技术时,阐述它的应用背景,强调每个算法运转背后的简洁数学思想,注意运用与其他技术类比的方法来说明它的特征,并提供了大量相应实际问题的例子。
《国外经典教材·算法概论》同时也注重了对每一种算法的复杂性分析。
全书共10章,从基本的数字算法人手,先后介绍了分治、图的遍历、贪心算法、动态规划、线性规划等技术,对NP完全问题进行厂基本而清晰的阐述,对随机算法、近似算法和量子算法这些近年来发展迅猛的领域也花费了一定的笔墨。
书中每章后面都附有大量的习题,有利于读者对书中内容的理解和应用。
2024/6/17 0:22:20 1.93MB Algorithms
1
很多涉及图上操作的算法都是以图的遍历操作为基础的。
试写一个程序,演示无向图的遍历操作。
以邻接表为存储结构,实现连通无向图的深度优先和广度优先遍历。
以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。
[测试数据]由学生依据软件工程的测试技术自己确定。
注意测试边界数据,如单个结点。
[实现提示]设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。
通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制。
注意,生成树的边是有向边,端点顺序不能颠倒。
2024/5/26 13:25:36 120KB BFS DFS
1
网络视频资源,如有侵权请留言/举报,资源过大上传乃是下载链接!!!!1.1.1线性表的逻辑结构1_10],r3`2t%j&?L&u(}2.1.2线性表的顺序存储结构_1_23.1.3线性表的链式存储结构_1_3_22h&A(D"j5F-i+I4N%S4.1.3线性表的链式存储结构1_3_1(C'z9h3~:v"q"k5.小结:顺序表和链表的比较与选择依据_1_46.章节总结及典型例题分析_1_57.2.1栈的类型定义_2_18.2.2栈的应用举例_2_2._)\%q6h*_6p!{9.2.3栈类型的实现_2_35X$M0sz0S&h7g:s10.2.4、2.5队列的类型定义及实现_2_40F.|1E$@,T/z2g7N(|,A11.2.6、2.7数组的类型定义、数组的顺序表示和实现_2_5'T*_$t*U5E'~:l'L%S&N7i5q12.2.8特殊矩阵的压缩存储_2_613.章节总结及典型例题分析_2_7*i1K%?#a:k+l;_C#Y/O14.3.1树的类型定义_3_1(I5J0P0o6}n15.3.2二叉树的类型定义_3_216.3.3二叉树的存储结构_3_3/X0p(f'd%|3p17.3.4遍历算法应用举例3_4_23f,WM;b5X+{)R9\#M:n/g18.3.4二叉树的遍历_3_4_1)c2Y+^*v"K2[:}2n"|19.3.5线索二叉树_3_520.3.6树和森林的表示法_3_6;a0?$C5K)|"K2[6t7}2i21.3.7树和森林的遍历_3_7+j4p(B5s6`"nN|3@22.3.8哈夫曼树和哈夫曼树编码_3_8'l)t*^(i*Y%a~.e,S-J23.章节总结及典型例题分析_3_9'j:?'j1u(u:q&y24.4.1抽象数据类型图的定义25.4.2图的存储表示!t)e!R(L3x"^:D*y-y26.4.3图的遍历'br0I;|4V-jt$y27.4.4最小生成树6Q9P3F.lJ/n28.4.5拓扑排序7Q1X(t!E,O)]4|/L29.4.6关键路径_4_66ce5N2D7B8d)D(n/v/~30.4.7两点之间的最短路径问题+u!d.o/s7b31.4.8章节总结及典型例题分析4S%p9G:}/s7w32.5.1静态查找表1gj8T7|"X.o#P&r.A33.5.2动态查找表p3c#L.[&y34.5.3散列表)n7y(K:K(o*H8E/_,}/S35.5.4字符串模式婚配6K2X(o[.C;|'F36.5.5章节总结及典型例题分析37.6.1排序的基本概念#s:J(L.W-X6Y#A#?!G1\1}38.6.2插入类排序*R"k'A3E5S:x39.6.3交换类排序法40.6.4选择类排序法41.6.5归并排序、6.6分配类排序5O'{1c+p1[:h2r)m42.6.7各种排序方法的综合比较5e8p%s*L$Y-P3G+K43.章节总结及典型例题分析
1
网络视频资源,如有侵权请留言/举报,资源过大上传乃是下载链接!!!!1.1.1线性表的逻辑结构1_10],r3`2t%j&?L&u(}2.1.2线性表的顺序存储结构_1_23.1.3线性表的链式存储结构_1_3_22h&A(D"j5F-i+I4N%S4.1.3线性表的链式存储结构1_3_1(C'z9h3~:v"q"k5.小结:顺序表和链表的比较与选择依据_1_46.章节总结及典型例题分析_1_57.2.1栈的类型定义_2_18.2.2栈的应用举例_2_2._)\%q6h*_6p!{9.2.3栈类型的实现_2_35X$M0sz0S&h7g:s10.2.4、2.5队列的类型定义及实现_2_40F.|1E$@,T/z2g7N(|,A11.2.6、2.7数组的类型定义、数组的顺序表示和实现_2_5'T*_$t*U5E'~:l'L%S&N7i5q12.2.8特殊矩阵的压缩存储_2_613.章节总结及典型例题分析_2_7*i1K%?#a:k+l;_C#Y/O14.3.1树的类型定义_3_1(I5J0P0o6}n15.3.2二叉树的类型定义_3_216.3.3二叉树的存储结构_3_3/X0p(f'd%|3p17.3.4遍历算法应用举例3_4_23f,WM;b5X+{)R9\#M:n/g18.3.4二叉树的遍历_3_4_1)c2Y+^*v"K2[:}2n"|19.3.5线索二叉树_3_520.3.6树和森林的表示法_3_6;a0?$C5K)|"K2[6t7}2i21.3.7树和森林的遍历_3_7+j4p(B5s6`"nN|3@22.3.8哈夫曼树和哈夫曼树编码_3_8'l)t*^(i*Y%a~.e,S-J23.章节总结及典型例题分析_3_9'j:?'j1u(u:q&y24.4.1抽象数据类型图的定义25.4.2图的存储表示!t)e!R(L3x"^:D*y-y26.4.3图的遍历'br0I;|4V-jt$y27.4.4最小生成树6Q9P3F.lJ/n28.4.5拓扑排序7Q1X(t!E,O)]4|/L29.4.6关键路径_4_66ce5N2D7B8d)D(n/v/~30.4.7两点之间的最短路径问题+u!d.o/s7b31.4.8章节总结及典型例题分析4S%p9G:}/s7w32.5.1静态查找表1gj8T7|"X.o#P&r.A33.5.2动态查找表p3c#L.[&y34.5.3散列表)n7y(K:K(o*H8E/_,}/S35.5.4字符串模式婚配6K2X(o[.C;|'F36.5.5章节总结及典型例题分析37.6.1排序的基本概念#s:J(L.W-X6Y#A#?!G1\1}38.6.2插入类排序*R"k'A3E5S:x39.6.3交换类排序法40.6.4选择类排序法41.6.5归并排序、6.6分配类排序5O'{1c+p1[:h2r)m42.6.7各种排序方法的综合比较5e8p%s*L$Y-P3G+K43.章节总结及典型例题分析
1
C言语数据结构,包括栈、队列的操作,二叉树,顺序查找,二分查找,哈夫曼树,图遍历等。
2020/9/24 8:27:35 25KB 数据结构 查找 遍历
1
要求采用邻接矩阵作为无向图的存储结构,邻接表作为有向图的存储结构,完成无向图和有向图的建立,并对建立好的图进行深度和广度优先遍历。
具体实现要求:1. 经过键盘输入图的顶点和边信息,分别构造一个无向图的邻接矩阵和一个有向图的邻接表。
2. 分别对建立好的两个图进行深度和广度优先遍历,输出相应的遍历序列。
3. 统计两个图的连通分量的个数。
1
内容提要:本文主要介绍了无向图的应用示例。
主要讨论关于无向图的最小生成树、无向图的遍历问题、图与图匹配和迷宫问题。
首先介绍了关于最小生成树的基本定义和性质,以及两种构造最小生成树的算法(Prim算法和Kruskal算法)。
然后,和有向图类似的介绍了两种无向图的遍历方法(深度优先遍历和广度优先遍历)。
接着介绍了迷宫问题的求解方法。
最后,介绍了求解最短路径的六种方法,包括宽度优先搜索、动态规划、A﹡算法、等代价搜索法、Warshall算法和标号法。
关键字:无向图、最小生成树、Prim算法、Kruskal算法、迷宫问题、最短路径引言:无向图G=(V,E)由顶点的集合V与边的集合E组成。
无向图和有向图的区别在于,构成无向图任意一条边的两个顶点是无序的,就是说,如果(V,W)是一条无向边,(V,W)=(W,V),以后把无向图简称图。
许多学科都用图描述对象之间的关系,建立数据模型,图的每个顶点表示一个对象,每条边表示两个对象之间的关系。
2022/9/5 10:52:43 294KB 算法 分析与设计 无向图
1
这是C#版的数据结构与算法的代码实现,包括:顺序表,单链表,双链表;
顺序栈,链栈;
顺序队列,链队列;
顺序串;
用数组进行特殊矩阵的存储,稀疏矩阵的存储;
顺序存储二叉树,链式存储二叉树,哈夫曼树;
多重链表表示法存储树;
用邻接矩阵处理图的编程问题,用邻接表处理图的编程问题,图的遍历(深度优先,广度优先),Dijkstra最短路径算法;
冒泡排序,快速排序
2022/9/5 9:52:06 675KB 数据结构与算
1
(含源码及报告)本程序分析了自2016年到2021年(外加)每年我国原油加工的产量,并且分析了2020年全国各地区原油加工量等,含饼状图,柱状图,折线图,数据在地图上显示。
运转本程序需要requests、bs4、csv、pandas、matplotlib、pyecharts库的支持,如果缺少某库请自行安装后再运转。
文件含6个excel表,若干个csv文件以及一个名字为render的html文件(需要用浏览器打开),直观的数据处理部分是图片以及html文件,可在地图中显示,数据处理的是excel文件。
不懂可以扫文件中二维码在QQ里面问。
2022/9/30 16:31:44 29.75MB 爬虫 python 源码软件 开发语言
1
数据结构算法与应用-C++语言描述目录译者序前言第一部分预备知识第1章C++程序设计11.1引言11.2函数与参数21.2.1传值参数21.2.2模板函数31.2.3引用参数31.2.4常量引用参数41.2.5返回值41.2.6递归函数51.3动态存储分配91.3.1操作符new91.3.2一维数组91.3.3异常处理101.3.4操作符delete101.3.5二维数组101.4类131.4.1类Currency131.4.2使用不同的描述方法181.4.3操作符重载201.4.4引发异常221.4.5友元和保护类成员231.4.6增加#ifndef,#define和#endif语句241.5测试与调试241.5.1什么是测试241.5.2设计测试数据261.5.3调试281.6参考及推荐读物29第2章程序功能302.1引言302.2空间复杂性312.2.1空间复杂性的组成312.2.2举例352.3时间复杂性372.3.1时间复杂性的组成372.3.2操作计数372.3.3执行步数442.4渐进符号(O、健?、o)552.4.1大写O符号562.4.2椒?582.4.3符号592.4.4小写o符号602.4.5特性602.4.6复杂性分析举例612.5实际复杂性662.6功能测量682.6.1选择实例的大小692.6.2设计测试数据692.6.3进行实验692.7参考及推荐读物74第二部分数据结构第3章数据描述753.1引言753.2线性表763.3公式化描述773.3.1基本概念773.3.2异常类NoMem793.3.3操作793.3.4评价833.4链表描述863.4.1类ChainNode和Chain863.4.2操作883.4.3扩充类Chain913.4.4链表遍历器类923.4.5循环链表933.4.6与公式化描述方法的比较943.4.7双向链表953.4.8小结963.5间接寻址993.5.1基本概念993.5.2操作1003.6模拟指针1023.6.1SimSpace的操作1033.6.2采用模拟指针的链表1063.7描述方法的比较1103.8应用1113.8.1箱子排序1113.8.2基数排序1163.8.3等价类1173.8.4凸包1223.9参考及推荐读物127第4章数组和矩阵1284.1数组1284.1.1抽象数据类型1284.1.2C++数组1294.1.3行主映射和列主映射1294.1.4类Array1D1314.1.5类Array2D1334.2矩阵1374.2.1定义和操作1374.2.2类Matrix1384.3特殊矩阵1414.3.1定义和应用1414.3.2对角矩阵1434.3.3三对角矩阵1444.3.4三角矩阵1454.3.5对称矩阵1464.4稀疏矩阵1494.4.1基本概念1494.4.2数组描述1494.4.3链表描述154第5章堆栈1615.1抽象数据类型1615.2派生类和继承1625.3公式化描述1635.3.1Stack的效率1645.3.2自定义Stack1645.4链表描述1665.5应用1695.5.1括号匹配1695.5.2汉诺塔1705.5.3火车车厢重排1725.5.4开关盒布线1765.5.5离线等价类问题1785.5.6迷宫老鼠1805.6参考及推荐读物188第6章队列1896.1抽象数据类型1896.2公式化描述1906.3链表描述1946.4应用1976.4.1火车车厢重排1976.4.2电路布线2016.4.3识别图元2046.4.4工厂仿真2066.5参考及推荐读物217第7章跳表和散列2187.1字典2187.2线性表描述2197.3跳表描述2227.3.1理想情况2227.3.2插入和删除2237.3.3级的分配2247.3.4类SkipNode2247.3.5类SkipList2257.3.6复杂性2297.4散列表描述2297.4.1理想散列2297.4.2线性开型寻址散列2307.4.3链表散列2347.5应用——文本压缩2387.5.1LZW压缩2397.5.2LZW压缩的实现2397.5.3LZW解压缩2437.5.4LZW解压缩的实现2437.6参考及推荐读物247第8章二叉树和其他树2488.1树2488.2二叉树2518.3二叉树的特性2528.4二叉树描述2538.4.1公式化描述2538.4.2链表描述2548.5二叉树常用操作2568.6二叉树遍历2568.7抽象数据类型BinaryTree2598.8类BinaryTree2608.9抽象数据类型及类的扩充2638.9.1输出2638.9.2删除2648.9.3计算高度2648.9.4统计节点数2658.10应用2658.10.1设置信号放大器2658.10.2在线等价类2688.11参考及推荐读物275第9章优先队列2769.1引言2769.2线性表2779.3堆2789.3.1定义2789.3.2最大堆的插入2799.3.3最大堆的删除2799.3.4最大堆的初始化2809.3.5类MaxHeap2819.4左高树2859.4.1高度与宽度优先的最大及最小左高树2859.4.2最大HBLT的插入2879.4.3最大HBLT的删除2879.4.4合并两棵最大HBLT2879.4.5初始化最大HBLT2899.4.6类MaxHBLT2899.5应用2939.5.1堆排序2939.5.2机器调度2949.5.3霍夫曼编码2979.6参考及推荐读物302第10章竞?30310.1引言30310.2抽象数据类型WinnerTree30610.3类WinnerTree30710.3.1定义30710.3.2类定义30710.3.3构造函数、析构函数及Winner函数30810.3.4初始化赢者树30810.3.5重新组织比赛31010.4输者树31110.5应用31210.5.1用最先匹配法求解箱子装载问题31210.5.2用相邻匹配法求解箱子装载问题316第11章搜索树31911.1二叉搜索树32011.1.1基本概念32011.1.2抽象数据类型BSTree和IndexedBSTree32111.1.3类BSTree32211.1.4搜索32211.1.5插入32311.1.6删除32411.1.7类DBSTree32611.1.8二叉搜索树的高度32711.2AVL树32811.2.1基本概念32811.2.2AVL树的高度32811.2.3AVL树的描述32911.2.4AVL搜索树的搜索32911.2.5AVL搜索树的插入32911.2.6AVL搜索树的删除33211.3红-黑树33411.3.1基本概念33411.3.2红-黑树的描述33611.3.3红-黑树的搜索33611.3.4红-黑树的插入33611.3.5红-黑树的删除33911.3.6实现细节的考虑及复杂性分析34311.4B-树34411.4.1索引顺序访问方法34411.4.2m叉搜索树34511.4.3m序B-树34611.4.4B-树的高度34711.4.5B-树的搜索34811.4.6B-树的插入34811.4.7B-树的删除35011.4.8节点结构35311.5应用35411.5.1直方图35411.5.2用最优匹配法求解箱子装载问题35711.5.3交叉分布35911.6参考及推荐读物363第12章图36512.1基本概念36512.2应用36612.3特性36812.4抽象数据类型Graph和Digraph37012.5无向图和有向图的描述37112.5.1邻接矩阵37112.5.2邻接压缩表37312.5.3邻接链表37412.6网络描述37512.7类定义37612.7.1不同的类37612.7.2邻接矩阵类37712.7.3扩充Chain类38012.7.4类LinkedBase38112.7.5链接类38212.8图的遍历38612.8.1基本概念38612.8.2邻接矩阵的遍历函数38712.8.3邻接链表的遍历函数38812.9语言特性38912.9.1虚函数和多态性38912.9.2纯虚函数和抽象类39112.9.3虚基类39112.9.4抽象类和抽象数据类型39312.10图的搜索算法39412.10.1宽度优先搜索39412.10.2类Network39512.10.3BFS的实现39512.10.4BFS的复杂性分析39612.10.5深度优先搜索39712.11应用39912.11.1寻找路径39912.11.2连通图及其构件40012.11.3生成树402第三部分算法设计方法第13章贪婪算法40513.1最优化问题40513.2算法思想40613.3应用40913.3.1货箱装船40913.3.20/1背包问题41013.3.3拓扑排序41213.3.4二分覆盖41513.3.5单源最短路径42113.3.6最小耗费生成树42413.4参考及推荐读物433第14章分而治之算法43414.1算法思想43414.2应用44014.2.1残缺棋盘44014.2.2归并排序44314.2.3快速排序44714.2.4选择45214.2.5距离最近的点对45414.3解递归方程46214.4复杂性的下限46314.4.1最小最大问题的下限46414.4.2排序算法的下限465第15章动态规划46715.1算法思想46715.2应用46915.2.10/1背包问题46915.2.2图像压缩47115.2.3矩阵乘法链47615.2.4最短路径48015.2.5网络的无交叉子集48315.2.6元件折叠48615.3参考及推荐读物491第16章回溯49216.1算法思想49216.2应用49616.2.1货箱装船49616.2.20/1背包问题50316.2.3最大完备子图50616.2.4旅行商问题50816.2.5电路板排列510第17章分枝定界51617.1算法思想51617.2应用51917.2.1货箱装船51917.2.20/1背包问题52617.2.3最大完备子图52817.2.4旅行商问题52917.2.5电路板排列532
2019/2/11 7:56:36 11.23MB 数据结构
1
共 11 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡