1. definitions for NP (using the handout titled "np-wiwki")
- verifier, proof, certificate, (short/succinct), language, decision problem
在讲P类问题之前先介绍两个个概念:多项式,时间复杂度。
1、多项式:axn-bxn-1+c 叫x最高次为n的多项式....
2、时间复杂度
我们知道在计算机算法求解问题当中,经常用时间复杂度和空间复杂度来表示一个算法的运行效率。空间复杂度表示一个算法在计算过程当中要占用的内存空间大小,这里暂不讨论。时间复杂度则表示这个算法运行得到想要的解所需的计算工作量,他探讨的是当输入值接近无穷时,算法所需工作量的变化快慢程度。
举个例子:冒泡排序。
在计算机当中,排序问题是最基础的,将输入按照大小或其他规则排好序,有利于后期运用数据进行其他运算。冒泡排序就是其中的一种排序算法。假设手上现在有n个无序的数,利用冒泡排序对其进行排序,
①首先比较第1个数和第2个数,如果后者>前者,就对调他们的位置,否则不变
②接着比较第2个数和第3个数,如果后者>前者,就对调他们的位置,否则不变
③一直向下比较直到第n-1和第n个数比较完,第一轮结束。(这时候最大的数移动到了第n个数的位置)
④重复前三步,但是只比较到第n-1个数(将第二大的数移动到第n-1个数位置)
⑤持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
举个实例:5,4,3,2,1,对其进行排序,先是比较5跟4变成4,5,3,2,1,第一轮结束后变成43215,可以计算,当对其排序完正好要经过4+3+2+1=10次比较,当然这是最复杂的情况,即完全反序。可以知道对于n个数,至多要经过1+2+...+n-