35、冒泡排序:大数下沉,小数上浮

你好,我是王健伟。 前面我带你学习了插入类排序中的直接插入排序和希尔排序,这次,我们讲解另一类排序——交换类排序。 所谓交换类排序,就是根据序列中两个关键字的比较结果,来决定是否要交换这两个关键字对应的记录在序列中的位置。 交换类排序主要包括冒泡排序...

34、希尔排序:通过部分有序逼近全局有序

你好,我是王健伟。 上一节我们讲解了直接插入排序算法。回顾前面学习的直接插入排序,不难想到下面两个问题。 首先,在待排序的数组中,元素本身就是有序的情况下,就不需要移动任何元素,所以直接插入排序最好情况时间复杂度为O(n)。不难想象,如果数组中元素多...

33、直接插入排序:为什么数据越有序,排序速度越快

你好,我是王健伟。 我们已经一起学习了不少主要的数据结构知识。不知你学得怎么样了,是不是很轻松呢?从这节课开始,咱们就要进入到算法知识的学习了。 这一次,我们学习一下“排序”算法。 无论是日常生活还是很多科学领域当中,排序都是会经常面对的问题,比如按...

32、图的应用:如何通过关键路径估算完成工程需要的最短时间

你好,我是王健伟。 这节课我们学习图的应用中的最后一个话题——关键路径问题。它解决的事估算完成某个工程所需要的最短时间的问题。说到“最短时间”,你应该就能反应过来,它是一个能帮助我们提高生产效率的算法。 我们还是从它涉及的基本概念开始说起。 “关键路...

31、图的应用:如何通过拓扑排序找到合理的先后顺序

你好,我是王健伟。 在我和你分享了两个图的应用,最小生成树和最短路径相关的算法之后,我们来说说拓扑排序。 拓扑排序主要是解决一个工程能否按顺序进行的问题。在正式讲解之前,我们首先来一起认识一下几个基本概念。 拓扑排序基本概念首先,有向无环图(Dire...

134567243