本课程旨在提高学生的编程技能。它强调了信息隐藏的重要性以及如何在良好的程序设计中使用抽象。本课程介绍了基本数据结构和算法分析,可用作设计问题解决方案的工具。本课程包括:算法分析和设计,学生将能够估计算法增长率并使用大 O 符号对其进行描述。数据结构包括:列表和链接列表、堆栈、队列、优先级队列、树及其遍历、二叉搜索树、堆、哈希表和图以及图的算法。此外,还将讨论重要的排序和搜索算法,包括:冒泡排序、插入排序、选择排序、合并排序、堆排序和基数排序、顺序搜索和二分搜索。
假设对于给定的集合,已经计算出某些猜测的最小猜测总数。在计算其他猜测的猜测数量时,除非猜测总数小于该时间点的最小猜测总数,否则计算猜测总数是没有意义的。猜测何时提出猜测的猜测总数等于或大于该猜测中获得的子集中预期的猜测总数的总和。因此,如果一个小于总和已经计算的值,我们知道猜测不是最好的猜测。为了进行这种修剪的效果,5040猜测是按要求在猜测时在子集中预期的猜测总数的总和来对其进行排序,并按照降低值搜索分支。对于此分类,我们使用堆排序。为此目的,要提取的元素数量很小,堆排序有效。确定集合的元素数量时,我们可以根据元素数量的猜测总数计算一个下限。例如,当元素n的数量为n≤14时,猜测总数的下限为1 + 2(n -1)= 2 n -1,因为即使在最好的情况下,在一个猜测中只有一个元素被击中,而n -1个元素在两个猜测中受到命中。以良好的精度获得猜测总数的下限是使修剪工作有效的重要点。结果如表1所示。在这种情况下,我们不仅使用了集合中的元素数量,还使用了集合中出现的数字类型(4-10),以获得猜测总数的下限。为了找到此策略,我们已经开发了一个程序,该程序搜索了一种策略,该策略最大化了使用n(4≤n≤10)数字的所有MOO数字的元素一个或多个元素最高至深度为m的节点。对于十种类型的数字,该程序能够通过利用对称性来在大约80秒内以3的深度找到该策略,但是对于九种数字,深度为3的搜索大约需要59个小时。
实现:在“ CC-213数据结构和算法”中研究的概念,性能分析/测量,稀疏矩阵,n维数组。堆栈:表达式评估。递归:回溯。队列:双端队列,自我引用类和动态内存分配。链接列表:单链接列表,循环列表,链接堆栈和队列(双端列表),双重链接列表。树:二进制树,二进制搜索树,高度平衡和AVL树的简介,作为优先队列的堆和堆,双端优先级队列。搜索:线性搜索,二进制搜索和索引类型。哈希:哈希函数,碰撞解决:开放的哈希,链接。排序:选择,气泡,插入,外壳,radix,合并,快速,堆排序的逻辑和算法实现。图形:图形术语,邻接列表和邻接矩阵以及图形的邻接列表表示。基本图形操作:广度首次搜索和深度第一次搜索,跨越树(BFSST,DFSST)。
1. 理解数据结构的基本概念。 2. 理解用于分析算法性能的符号。 3. 为特定应用选择并应用适当的数据结构。 4. 理解递归的概念及其在解决问题中的应用。 5. 展示对搜索和排序算法的透彻理解。 UNIT-I 简介:数据类型、数据结构、数据结构类型、操作、ADT、算法、算法比较、复杂性、时间-空间权衡。递归:简介、递归函数的格式、递归与迭代、示例。 UNIT-II 链表:简介、链表和类型、链表的表示、链表上的操作、链表与数组和动态数组的比较。 UNIT-III 堆栈和队列:堆栈简介、堆栈的应用、堆栈实现的实现和比较。队列简介、队列的应用和实现、优先级队列和应用。 UNIT-IV 树:定义和概念、二叉树的运算、二叉树的表示、一般树到二叉树的转换、树的表示、树的遍历、二叉搜索树。 UNIT-V 图:介绍、图的应用、图表示、图遍历、最小生成树。搜索和排序:线性搜索、二叉搜索、排序算法 - 冒泡排序、选择排序、快速排序、堆排序。教科书:
图。 了解有关搜索和排序技术的概念 UNIT-I 简介:抽象数据类型,单链表:定义、操作:遍历、搜索、插入和删除,双向链表:定义、操作:遍历、搜索、插入和删除,循环链表:定义、操作:遍历、搜索、插入和删除。 UNIT-II 堆栈:堆栈 ADT、数组和链表实现,应用程序-表达式转换和评估。队列:队列的类型:简单队列、循环队列、队列 ADT-数组和链表实现。优先队列、堆。 UNIT-III 搜索:线性和二进制搜索方法。排序:选择排序、冒泡排序、插入排序、快速排序、合并排序、堆排序。时间复杂度。图:基本术语、图的表示、图遍历方法 DFS、BFS。 UNIT IV 字典:线性列表表示、跳跃列表表示、操作 - 插入、删除和搜索。哈希表表示:哈希函数、冲突解决 - 单独链接、开放寻址 - 线性探测、二次探测、双重哈希、重新哈希、可扩展哈希。 UNIT-V 二叉搜索树:各种二叉树表示、定义、BST ADT、实现、操作 - 搜索、插入和删除、二叉树遍历、线程二叉树、AVL 树:定义、AVL 树的高度、操作 - 插入、删除和搜索 B 树:m 阶 B 树、B 树的高度、插入、删除和搜索、B+ 树。教科书:1. 使用 C++ 的数据结构,特别版-MRCET,Tata McGraw-Hill Publishers 2017。2. C++ 中的数据结构、算法和应用,S.Sahni,University Press (India) Pvt.Ltd,第 2 版,Universities Press Orient Longman Pvt. Ltd. 教育。