W1算法基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Richard__Ting/article/details/89463014

W1算法基础


时间复杂度

常数操作: 一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。例如加减乘除运算,数组寻址等。

大O表示法: 评价常数操作数量的指标,一般找的是最坏情况。

评价算法好坏: 看指标,指标相同看系数。


一个例子(A有序,B无序,找B中不在A中元素)
  • 方法一:对于数组B中的每一个数,都在A中通过遍历的方式找一下;
    • 时间复杂度 O ( M N ) O(M*N)
  • 方法二:对于数组B中的每一个数,都在A中通过二分的方式找一下;
    • 时间复杂度 O ( M l o g N ) O(M*logN)
  • 方法三:先把数组B排序,然后用类似外排的方式打印所有在A中未出现的数。
    • 时间复杂度 O ( M l o g M ) + O ( N + M ) O(M*logM)+O(N+M)
    • b < = a b<=a ,移动 B 的指针,否则移动 A 的指针。

冒泡排序

插入排序

选择排序

等待更新

猜你喜欢

转载自blog.csdn.net/Richard__Ting/article/details/89463014