![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法/数据结构
文章平均质量分 80
lwj0723
敢拼,不言弃
展开
-
二叉树系列:初探二叉树,c语言实现
端午节假期的最后一天,天气凉爽,我下午该回学校了。原本,我昨天就该写下二叉树的博文,但是由于在二叉树删除这块的功能实现不尽人意,所以我推迟了,希望将其改进后再进行记录。早上趁着清醒,我如愿地改进了二叉树的删除功能,特此记录想法的美好瞬间。 1、二叉树的基本概念 二叉树的特点是每个结点至多有二棵子树,并且子树之间有左右之分。 二叉树的其他特性可以参考博文链接,这里按照我自己的原创 2015-06-22 10:09:02 · 501 阅读 · 0 评论 -
哈希表系列:初探哈希,c语言实现
最初在阅读数据结构书籍时没有仔细看过哈希,潜意识认为太难了,应该用不到吧~但是,最近关注哈希表的原因是我在刷Leedcode时,有道题Two sum可以用哈希表求解,利用哈希特性“将庞大的数据进行压缩”,这就是哈希在处理大数据时的优势。 1、哈希表基本概念 哈希表(Hash table,又叫散列表),是根据关键码值而直接进行访问的数据结构。我在这里将其抽象为“数组+链表”的复合原创 2015-06-20 10:14:04 · 3718 阅读 · 0 评论 -
数组排序问题的两种方法:插入排序算法和递归(分治)算法
在这里我将讨论数组的排序问题,并引入插入排序算法和递归算法求解。 1、插入排序 这里通过算法导论中的伪代码说明算法过程。 Insertion-sort(A) for(j=2 to A.length) key=A[j] //Insert A[j] into s原创 2015-07-11 23:06:20 · 2640 阅读 · 0 评论 -
堆排序(C语言实现)
摘要:本篇博客,介绍另一种数组排序算法:堆排序。算法用C实现。原创 2015-08-01 19:42:28 · 1144 阅读 · 0 评论 -
动态规划:钢条切割问题
动态规划与分治法相似,都是通过组合子问题的解来求解原问题。回顾下分治法的原理:它将问题划分为互不相交的子问题(注意:互不相交),递归求解子问题,再将它们的解组合起来,即为原问题的解。 但是,动态规划与分治法不同,有以下几点: 1)对于子问题重叠的情况,分治法则重复求解,不高效。而动态规划对每个子问题只求解一次,因为它将子问题的解进行保存,当遇到重复的子问题时,不再计算,只需查找替原创 2015-07-17 20:56:53 · 2560 阅读 · 0 评论 -
哈希表系列:初探哈希(二),c语言实现
摘要: 上次分析了哈希表的链地址法的实现,即采用“数组+链表”的数据结构。这次,介绍下用哈希桶的方式去解决哈希冲突,即通过哈希函数hash()将key转化为哈希值,然后根据桶的容量(桶的容量固定),且结合“除余法”定位到某个哈希下标,为该哈希值建立哈希桶(Bucket)。原创 2015-07-21 19:20:29 · 567 阅读 · 0 评论