算法导论 第一章:算法在计算中的作用 笔记

版权声明:站在巨人的肩膀上学习。 https://blog.csdn.net/zgcr654321/article/details/85118779

算法

算法(algorithm) 就是定义良好的计算过程,它取一个或一组值作为输入, 并产生出一个或一组值作为输出。也就是说,算法就是一系列的计算步骤,用来将输入数据转换成输出结果。

NP完全问题

NP完全问题(NPC问题),是世界七大数学难题之一。 NP的英文全称是Non-deterministic Polynomial(非确定性多项式),即多项式复杂程度的非确定性问题。

NP完全问题集有一个显著的特点,即如果该集合中的任何一个问题存在有效的算法,则该集合中的其他所有问题都存在有效算法。

如果你能证明一个问题是NP完全的,就可以把时间花在设计一个有效的算法上,该算法可以给出比较好的、但不一定是最佳可能的结果。

插入排序和合并排序

在第2章中,书中介绍了插入排序和合并排序。

插入排序算法对n个数据项进行排序的时间大约等于,其中c1是一个不依赖于n 的常量。

合并排序算法对n个数据项进行排序所需的时间大约是, lgn表示log2n, c2是另一个同样也不依赖于n 的常量。

插人排序算法与合并排序算法相比,通常有着更小的常量因子,即c1<c2 。常量因子对运行时间的影响要小得多。

总的来说插入排序比归并排序慢的很多。

扫描二维码关注公众号,回复: 4580914 查看本文章

注意:

在算法导论这本书中,lgn就表示log2(n)。

不同底数的log(x)的函数图像如下:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zgcr654321/article/details/85118779