数据结构与算法
文章平均质量分 61
统一用C语言实现,如有错误,还望不吝指正。
马大大~
这个作者很懒,什么都没留下…
展开
-
十大排序算法
归并排序需要一块额外的空间,用于存储合并的结果,它的时间复杂度与快速、堆相同,但是在排序过程中没有进行数据交换,而直接数据拷贝,因此节约了大量的数据交换的时间,但也耗费了额外的内存,所以它是一个典型的用空间换取时间的排序算法。 使用这种方式排序的优点是不需要对待排序的数据进行比较、交换,所以它的排序速度要比普通排序快的多,但局限性很大,只能对整型数据排序,并且对正负数还有要求,还需要额外的内存空间。 先根据数据个位的大小对数据进行排序,然后再对排序结果的十位进行排序,然后百位、千位…原创 2023-08-24 22:52:42 · 37 阅读 · 1 评论 -
查找算法-C
在查找数据时需要进行一系列的比较运算,无论是顺序查找、二分查找,都是建立在比较的基础上的,但最理想的查找算法是不经过任何比较,一次存取就能查找到数据,那么就需要在存储位置和它的关键字之间建立一个确定的对应关系,使每个关键字和数据中的唯一的存储位置相对应。 以上是很简单的一个例子,但是可以看出其局限性,比如如果数据范围变为0~1000000,那么这样构建出来的哈希表可能很大,那么就得重新设计哈希函数,但是这样算出来的结果也可能出现重复,因此设计出合适的哈希函数、解决冲突问题是哈希表和哈希查找的关键。原创 2023-08-23 22:48:44 · 26 阅读 · 0 评论 -
树和二叉树
删除节点时,首先需要找到待删除的节点。如果待删除的节点有两个子节点,可以找到其右子树中的最小节点,即右子树中的最左节点,将其值复制到待删除节点,并删除该最小节点。结点的子树称为该结点的孩子,而该结点是孩子结点的双亲,拥有共同双亲的结点互为兄弟,从双亲结点往上,直到根结点都称为孩子结点的祖先结点,以某结点为根的子树中的任一结点都被称为该结点的子孙。 若一棵树的层数为k,它前k-1层的总结点数是2^(k-1)-1(前k-1层是满二叉树),第k层的结点按照从左往右的顺序排列,则这棵树就是完全二叉树。原创 2023-08-17 23:19:40 · 28 阅读 · 1 评论 -
C-栈和队列
原创 2023-08-16 23:09:54 · 31 阅读 · 1 评论 -
数据结构-线性表
【代码】数据结构-线性表。原创 2023-08-02 22:42:53 · 27 阅读 · 0 评论 -
冒泡、选择排序
【代码】冒泡、选择排序。原创 2023-07-21 22:58:21 · 25 阅读 · 1 评论