数据结构
文章平均质量分 74
记录学习数据结构时候的笔记
青衫哥
面向大牛编程,打怪升级中!
展开
-
二叉搜索树
二叉搜索树的使用操作及模拟实现,在此基础上加入了KV的用法来实现词典功能和单词计数功能。原创 2023-03-01 18:53:18 · 662 阅读 · 0 评论 -
八大排序总结篇
一、前言到这里,数据结构的八大排序就算是全部写完了。这一期总结篇我们来测试一下八大排序的效率,印证一下八大排序的时间复杂度,以及深度剖析一下八大排序的稳定性问题。二、八大排序。原创 2022-11-16 18:17:02 · 1726 阅读 · 16 评论 -
排序8: 计数排序
1.计数排序在数据范围集中时,效率很高,但是适用范围及场景有限。2.时间复杂度:O(MAX(N,范围))3.空间复杂度:O(范围)原创 2022-11-12 16:31:30 · 485 阅读 · 0 评论 -
排序7:归并排序
1.排序思想归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。2.图解3.递归版本因为要排序,还要递归。我们肯定是要写一个子排序的,下面来说说子排序的实现逻辑。原创 2022-11-12 00:02:59 · 303 阅读 · 0 评论 -
排序6:冒泡排序及优化思想
冒泡排序的思想及代码实现逻辑,最终进行优化。原创 2022-11-03 15:15:48 · 332 阅读 · 0 评论 -
排序5:直接选择排序
记录这一趟中所遇到的最小值与最大值以及开头和结尾的下标。遍历一遍找到所对应的值,交换 mini 和 begin 以及 maxi 和 end 对应的数据的值。如果第一个是最大值是在begin的位置,在 mini 和 begin 交换时被换走之后但是maxi仍然 指向怎么办?因为就算是大致有序了,仍然需要走完全过程,时间复杂度任何情况下都是O(N^2)。很简单,我们只需要做出以下操作,将maxi改正到指向正确的值上即可。)元素,则将它与这组元素中的最后一个(第一个) 元素交换。原创 2022-10-31 16:22:28 · 503 阅读 · 1 评论 -
排序4:关于快排,你了解多少?
上期我们详细介绍了堆排序的底层逻辑以及代码的实现,详细计算了时间复杂度。这一期,我们来探讨三种快排方法的思想以及代码的实现,并在此基础上进行优化。原创 2022-10-06 13:49:27 · 1329 阅读 · 14 评论 -
排序3: 堆排序
上期回顾:我们讲了的实现方式。这一期,我们来剖析一下堆排序的底层思路以及代码实现。原创 2022-10-03 13:40:58 · 1495 阅读 · 13 评论 -
排序2:希尔排序(缩小增量排序)
关与希尔排序的时间复杂度问题,是很难计算出来的。殷人昆老师的《数据结构-用面相对象方法与C++描述》一书中提到:在n在某个范围的内的时候,时间复杂度约为n^1.3。当数据过多的时候,时间复杂度也会提高到n(logn)²。而希尔排序在排序中也是不稳定的(不稳定:即有可能因为某部分的有序破坏原先的已经变为有序的部分)。原创 2022-09-28 22:49:15 · 640 阅读 · 1 评论 -
排序1:直接插入排序
✨✨很久没有写博客了,最近打算完整的写一个专题关于数据结构中排序算法的内容✨✨这一期我们来剖析一下直接插入排序的底层逻辑和代码实现。把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。这一点就类似于我们打扑克的时候把一张牌插入到其他牌的前面。一口气吃不成一个大胖子,想要实现整个排序,我们应该来先实现单轮排序。逻辑大致可分为以下:1、从后往前遍历。2、比较后一个与前一个的大小。原创 2022-09-28 14:46:32 · 667 阅读 · 1 评论