算法导论笔记:01算法概述

        1:对于有些问题,目前还不知道是否存在有效的算法,这些问题的一个子集是NP完全问题,对于NP完全问题:a是否存在有效算法是未知的;b如果任何一个NP问题存在有效算法,那么所有的NP完全问题都存在有效算法;c有些NP完全问题类似于一些已经有有效算法的问题。


        2:如果两个算法,比如插入排序和归并排序,插入排序的时间为 ,归并排序的时间为对于小的输入规模,插入排序通常比归并排序要快,但当输入规模n变得足够大,归并排序就比插入排序要快,不管小多少,总会存在一个交叉点,超出这个点,归并排序更快。具体的例子:

 

        我们让运行插入排序的一台较快的计算机(计算机A)与运行归并排序的一台较慢的计算机(计算机B)竞争。每台计算机必须排序一个具有1000万个数的数组。假设计算机A每秒执行百亿条指令,而计算机B每秒仅执行1000万条指令,结果计算机A就纯计算能力来说比计算机B1000。为使差别更具戏剧性,假设世上最巧妙的程序员为计算机A用机器语言编码插入排序,并且为了排序n个数,结果代码需要条指令。进一步假设仅由一位水平一般的程序员使用某种带有一个低效编译器的高级语言来实现归并排序,结果代码需要50nlgn条指令。为了排序1000万个数,计算机A需要


而计算机B需要

原文地址:https://www.cnblogs.com/gqtcgq/p/7247247.html