贪心算法又被称为贪婪算法,在求解一个问题时总是做出在当前看来是最好的选择。在本章的内容中将详细讲解贪心算法思想的基本知识,并通过具体例子详细讲解贪心算法的用法和技巧。希望读者理解并掌握贪心算法思想的用法和核...[继续阅读]
海量资源,尽在掌握
贪心算法又被称为贪婪算法,在求解一个问题时总是做出在当前看来是最好的选择。在本章的内容中将详细讲解贪心算法思想的基本知识,并通过具体例子详细讲解贪心算法的用法和技巧。希望读者理解并掌握贪心算法思想的用法和核...[继续阅读]
折半查找算法的查找过程如下所示。(1)将表中间位置记录的关键字与查找关键字比较,如果两者相等则表示查找成功;否则利用中间位置记录将表分成前、后两个子表。(2)如果中间位置记录的关键字大于查找关键字,则进一步查找前一...[继续阅读]
已知一个使用字符串表示非负整数num,将num 中的k个数字移除,求移除k个数字后,可以获得的最小的可能的新数字(num 不会以0 开头,num 长度小于10002)。例如输入:num = "1432219",k=3在去掉3个数字后得到的很多可能中,如1432,4322,2219,1219,…,去掉...[继续阅读]
在下面的实例文件xuan03.py 中演示了使用直接选择排序算法分别升序和降序排列一个列表的过程。首先通过参数order 设置排序方式,然后使用for 循环遍历列表,根据参数order 的值将每次找到的较小值或较大值放在前面,最后使用print() 打...[继续阅读]
看名字就知道,交换类排序是一种基于交换的排序法,能够通过交换逆序元素进行排序。在现实应用中,最常用的交换类排序算法有冒泡排序法和快速排序法。在本节的内容中将详细介绍使用冒泡排序算法。...[继续阅读]
快速排序某个列表中的元素,要求按照从小到大的顺序进行排列。例如列表中的元素是[5,11,3,5,8,2,6,7,3],则排列后的结果是[2, 3, 3, 5, 5, 6, 7, 8, 11]。4.6.1 算法分析:设定基准线并对比基于分治算法策略,设定一个基准线(pivot),将数据与基准...[继续阅读]
到此为止,和数据结构相关的算法实战方面的内容已经讲解完毕。因为算法和数据结构的关系千丝万缕,密不可分,所以在此建议广大读者务必要深入学习数据结构的相关知识。算法和数据结构两者是相辅相成的,只有将两者融会贯通...[继续阅读]
在介绍插值查找算法之前,读者首先考虑一个新问题,为什么前面的算法一定要是折半,而不是折四分之一或者折更多呢?打个比方,在英文字典里面查“apple”,你下意识翻开字典是翻前面的书页还是后面的书页呢?如果再让你查“zoo”,你...[继续阅读]