1:到底什么是Big O ,这里是指算法执行的上界,
我们知道归并排序的算法时间发咋都是O(nlogn)的,但是我们可以找到一个常数,使得n logn * a <b* n ^2 的所以我们也可以说 算法复杂度是 O(n ^ 2)
但是业界我们通常使用O表示算法执行的最低的上界,所以我们说 归并排序 是n logn 的
当数据规模不断增大时,则常量的影响时间复杂度越来越小,各种算法的时间复杂度差距也就越来越明显 ,我们研究算法就是为了解决当数据量大时的问题,减少时间复杂度
所有高级的数据排序算法,在数据规模小到一定程度时,都可以用插入排序
当有多个算法时,且算法数据的规模一样时,对应的时间复杂度就是
但是多个算法的时间规模不一样时,是不能省略的
例题1:
我们应该知道 算法的复杂度在有些情况下是用例相关的
插入排序算法O(n^2) ,最差是O(n^2),最好的情况下O(n),平均O(n^2)
快速排序O(nlogn),最差情况O(n ^2),最好的情况下O(nlogn),平均O(nlogn)