一些算法知识

153 阅读1分钟

在数据结构中,每个算法都有他的时间复杂度。用 O() 表示 括号里面是通过算法求出来的时间复杂度。

1、O(n)

时间复杂度为O(n),就代表数据量增大n倍,耗时也增大n倍。

O(1)表示一次操作即可直接取得目标元素(比如字典或哈希表),O(n) 意味着先要检查 n 个元素来搜索目标。

2、O(n^2)

时间复杂度O(n^2),也可写成O(n*n),代表数据量增大n倍时,耗时增大n的平方倍,这是比线性更高的时间复杂度。比如冒泡排序,就是典型的O(n^2)的算法,对n个数排序,需要扫描n×n次。

3、O(n log2 n)

快速排序:以一个元素为基准,重新排序数列,比基准值小的元素放左边,大的放右边,然后在对左半边和右半边重复以上操作,直到只有一个数字为止 O(n + max) 基数排序:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。

会慢慢补充。。。