吴军 计算之魂电子版(吴军 计算之魂 mobi)

原创 loveyou i  2023-08-22 16:10  吴军 计算之魂电子版(吴军 计算之魂 mobi)已关闭评论
摘要:

[db:摘要]

本文节选自《计算之魂》电子版:

//计算之魂/素都放进了4序列中,我们假定C子序列的元素先放完了,8子序列里面还剩一点。显而易见的是,3子序列中所剩的元素已经排好了序,而且都比已经放到4序列中的元素大,于是我们直接将它们放到4序列的末尾即可,如图1.5〈b)所示。这洋,我们便将两个排好序的子序列合并成一个大的序列。在这个过程中,最多会进行六次的比较,移动Y个数字,时间复杂度为COV)。接下来就又产生了一个新的问题:有和C这两个子序列是怎样完成排序的?答案非常有趣一一重复上述过程,也就是我们只要先假定中子序列的前一半和后一半都分别震籽了序,C子序列也是如此。这种做法让我想起了世界各国都给孩子讲的一个古老的故事:从前有座山,山里有个庙,庙里有个老和尚在给小和尚讲故事,讲的是什么呢?从前有座山,山里有个庙,庙里有个老和尚在给小和尚讲故事……上面所描述的算法就是这样一种思路,这在计算机科学上被称为递归。关于递归后面会专门讲,但是在这里我要强调一下递归和那个古老的故事之间不同的地方,即上面的故事会永远循环下去,而递归有一个结束的条件。a体到归并排序,当最后的子序列中只剩下一个元素时,它惑不用排序了,然后一层层递进惑将整个问题解决了。归并排序中还有第二个问题要回答,那就是上述归并的过程要进行多少次。我们知道当子序

计算之魂书

列中只剩下一个元素时,上述逐级往下递归的过程就结束了,而每一次递归循环,都会将当前序列中的元素数量减半,那么只要logN次递归,就遇到了结束条件。每一次递归,从上到第一次3OUVo下,所需要的计算量分析如下。第二次,由于有两个子序列,而每个子序列的计算量是原来的一半,因此总的计算量和第一次相同,我们可以认为是OOW2X2)=OUV)。第三次,有了四个子序列,每一个是原始序列的14,因此总的计算量和第一次相同。最后,到了第有ElogN次,有了050六个子序列,每一个是原始序列的MIV,总计算量依然等于第一次的N。这也就是说,整个归并排序的计算复杂度是CO(MogV)。我们在前面用实例说明了,ONMogN)和OUV)复杂度的差异是算法都少了很多,或者说省去了大量重复的计算。那么归并排序为什么能把不必要的计算去掉呢?我们还是匠巨大的。这就是说归并排序的计算量比全/第1章//毫厘二里之差一一大O概念//观的排序序列的过程。在那个合并的过程中,获得当前最小的元素只需要让两个可能的最小元素进行一次比较,因为我们利用了下下严Z,则一定有交Z这样的逻辑。而在选择排序中,则需过来看看归的第一步,即将忠和C这两个子序列合并为4由要让一个元素和几乎所有的元素比较,即便那些比较是显而易见不用进

计算机之魂吴军扫描版

行的。这便是归他领域还有更广泛的应用,这一点我们后为当我们把了和C这两个子序列合当然,在对83、C子序列进并排序省时间的根本原因。从这个例子可以看出,寻找更优化的算法的精髓就在于少做无用功。归并排序中将序列两两合并的做法,即归并排序算法,在计算机领域以及很多其|面还会讲到。,归并排序有一个问题,就是它需要使用额外的存储空间保留中间结果,医为4行归并排序时不需要有这种担心,因为在整个计算过程中序列时,需要额外的OU)大小的存储空间。只需要保留一份完整的数据即可,4序列的空间可以拿来做存储。也就是说每一次归5并,归并前的数据使用一组CO(V)大小的存储空间,归并后的数据使用同样大小的另一组空间,两组存储空间来回替换使用很难有绝对的最好,因为衡量好的标准有很多维度,归并排序算志此也就会有人试图寻找一种计算时间复杂度在计算机科学法在使用空间的维度上就不算太经济,是OOMogN),同时又不占用额外空间的排序算法。于是在1964年,加拿大计算机科学家约翰,威廉斯(JohnWIWilliams)就提出了堆排序算法。这种算法满足我们前可说的两个要求,即OUViogN)的时间复杂度,以及不占用额外的空间。后一种特性又被称为就地特征(inplacecharacteristic)。051

计算之魂网盘

计算之魂和数学之美计算之魂TXT
计算之魂介绍计算之魂azw3
计算之魂这本书的内容吴军计算之魂的主要内容

吴军 计算之魂电子版(吴军 计算之魂 mobi)综上:吴军 计算之魂 mobi值得推荐阅读

历史上的今天:

文章标签:

特别说明:本站不提供下载,文章采集自网络,如有侵权,联系删除文章

版权声明:吴军 计算之魂电子版(吴军 计算之魂 mobi)》,版权归 loveyou i 所有,侵删!
相关文章 关键词:

评论已关闭!