啊哈,算法的读后感

张开发
2026/5/21 22:07:59 15 分钟阅读
啊哈,算法的读后感
本书共有9种算法我这里举例的有7次能力有限没有全部包含。一排序桶排序这个是最快也是最简单的排序但是它并不是真正的桶排序而是简化版这是为了更加简单易懂才处理的所以还不是真正的排序算法。这里我列举出它的一个相关的例子这里有五个人的分数分别是5 3 5 2 8 要从小到大进行排序。以上输出结果为2 3 5 5 8.那么如果需要从大到小排序只需要把for(i0;i10;i)改成for(i10;i0;i--)就可以了。冒泡排序冒泡排序的定义每次比较两个相邻的元素如果它们的顺序错误就把它们交换过来相比于上面介绍的排序这个排序只需要交换不需要存储大量的数字节省了很大的空间也不用考虑需要排序的是小数还是整数。下面是例子输入输出结果如下从上面的例子可以看出冒泡排序的核心是双重嵌套循环。快速排序快速排列定义在序列中找一个数作为基准数从左向右找比基准数大的数从右向左找比基准数小的数找到的时候两数进行交换这样就形成了快速交换。与冒泡式相比速度更快因为每次交换是跳跃的交换距离大了交换次数就少了。下面是例子这里代码有点长分为两节来展示。作者后面还加了一个小结是关于前面三个排序算法的实际应用在这里我就不再展示了。二栈队列1.队列队列定义队列是一种特殊结构是一种先进先出的数据结构它只允许在队列的首部head进行删除操作这称为 “出队”而在队列的尾部tail进行插入操作称为“入队”。当队列中没有元素时称为“空队”。作者在书里利用了一个猜QQ号的问题:结果栈栈的定义栈是一种操作受限的线性表只允许在表的一端称为栈顶进行插入和删除操作。遵后进先出的原则最后进入栈的元素最先被取出。利用这个结构可以将很容易判断一个字符串是否为回文。给出代码我这里输入了ahaha结果枚举枚举是一种用户自定义的数据类型用于将一组具有关联性的整型常量用有意义的名称表示提高代码的可读性和可维护性。枚举的思想有序地去尝试每一种可能。由于作者给出的第一个例子太过于长了我就给出他改进过后的版本结果是很长的加法在这里我就不展示了。还有就是作者在枚举里另外的三个例子也是比较长的我的目的是保证我对此书的简要阅读展示所以我就只放一个代码好了。万能的搜索搜索的定义搜索是指在一组数据如数组、链表等中查找是否存在某个特定元素并返回其位置或状态的过程。代码如下这个例子是作者搜索里最简单的例子后面的就不提了。遍历遍历的定义遍历是指按照某种顺序对数据结构如数组、链表、树、图等中的每一个元素访问且仅访问一次的过程。与“搜索”不同搜索是为了找到某个特定元素而遍历的目的是处理所有元素。下面是一个例子再最后我补充一下我在上面没有提到的算法定义1.链表链表是一种线性数据结构它由一系列节点组成这些节点在内存中不必连续存储。每个节点通常包含两部分数据域存储该节点所包含的数据元素。针域存储指向下一个或上一个节点的内存地址引用。通过指针将各个节点串联起来形成一条逻辑上的链条。2.最短路径最短路径是图论中的一个经典概念指在一个图由顶点和边组成中从起点到终点所经过的边权和最小的路径。3.树树是一种非线性数据结构用于表示具有层次关系的数据。它由节点顶点和连接节点的边组成具有以下特征无环连通在图论中树被定义为无环且连通的图若nn个节点则恰有n−1n−1 条边。递归定义一棵树由根节点以及若干棵互不相交的子树构成每棵子树本身也是一棵树。当节点数为 0 时称为空树。至此我的读后记录完成有错误的地方欢迎指正感谢。

更多文章