剑指offer算法部分

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

递归和循环:

递归:定义:在一个函数的内部调用这个函数自身

           优点:代码简洁

           缺点:1.函数调用有时间和空间的开销,空间上:在内存栈中分配空间以保存参数,返回地址以及临时变量;时间上:数据的弾入和弹出都需要时间

                      2.递归中可能很多计算都是重复的(递归的本质是把一个问题分解成两个或多个问题),小问题存在相互重叠的部分,就存在重复计算

                      3.还可能存在调用栈溢出的情况

循环:设置计算的初始以及终止条件,在一个范围内重复计算

总结:基于递归的实现方法比较简洁,但性能不如循环的实现方法,如果面试官没有特殊要求,就采用递归的方法

查找

哈希表:时间效率O(1),但需要额外的空间实现哈希表

二叉排序树(二叉搜索树)

 ☛☛☛二分查找:要求在排序的数组(或部分排序的数组)中查找一个数字或者统计某个数字出现的次数,都可以尝试用二分查找

排序

插入排序,冒泡排序,归并排序快速排序,堆排序(额外空间消耗,平均时间复杂度,最差时间复杂度)

猜你喜欢

转载自blog.csdn.net/weixin_40244153/article/details/87782298