06 2019 档案

摘要:尽管很多人知道哈希表,但并并没有掌握到核心(到目前为止,我也没有)。其实对于哈希的阐述,应该顺着这样的一个结构: 什么是哈希结构? 为什么需要哈希结构? 如何实现哈希结构? 实现哈希结构的过程中会遇到什么问题? 如何解决这些存在的问题? 实际上,学习的每个过程,几乎都遵循着这样的一个逻辑,但是关键在 阅读全文
posted @ 2019-06-14 09:48 少年π 阅读(385) 评论(0) 推荐(0)
摘要:递归是一种重要的算法思想,其实现的“简洁性”通常会让人赞美,但不加修饰的递归通常会带来栈空间的爆炸。然而,这并不阻挡人们对递归的探索。 这位作者给出了递归一些典型的案例:https://mp.weixin.qq.com/s/mJ_jZZoak7uhItNgnfmZvQ 这里面讲到了递归的三要素,以及 阅读全文
posted @ 2019-06-10 21:21 少年π 阅读(275) 评论(0) 推荐(0)
摘要:除了上一次介绍的希尔排序,堆排序,快速排序,也是经常用到的排序方式,其中快速排序可以说是一种性能十分优秀的排序。 1 堆排序: 针对堆排序,对于其代码实现不作阐述,因为太过于复杂,主要是堆处理的复杂。 在此,对其算法的核心步骤作一定描述: 堆排序,本质上,分为两步: 1 建立堆: 1 广度优先初始化 阅读全文
posted @ 2019-06-07 16:35 少年π 阅读(3135) 评论(0) 推荐(0)
摘要:希尔排序是一种高性能的排序算法 ,其核心思想在于: 1.将数组分割为若干子数组,对每个子数组进行简单算法排序(如插入,梳排序均可); 2.将排序后的子序列合并,继续重复步骤1; 直到所分的数组为1组。,算法结束。 那么上述中,如何分组呢?分组方式见《C++数据结构与算法》393页最下面的划分方式,当 阅读全文
posted @ 2019-06-05 19:59 少年π 阅读(806) 评论(0) 推荐(0)
摘要:在Windows下使用习惯了IDE,导致我们对程序的编译链接没有一个清晰的认识,甚至混淆了编辑器和编译器的概念。在学习Linux时,这些问题就暴露出来了。 实际上,我们应该严格区分一个程序从产生到执行的整个过程:写代码->编译->链接->可执行程序。 1 写程序 严格来说,无论我们是否在IDE中写程 阅读全文
posted @ 2019-06-02 21:53 少年π 阅读(553) 评论(0) 推荐(0)
摘要:首先介绍一下GCC:GNU Compiler Collection(GNU 编译器集合),在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前 Linux下最常用的C语言编译器是GCC(GNU Compiler Co 阅读全文
posted @ 2019-06-02 20:19 少年π 阅读(1194) 评论(0) 推荐(0)