设有升序排列的线性表(2,4,7,10,12,16,18,19,20,24,27,29,30,35,36,40,41),用二分查找法进行查找

这是一套关于数据结构与算法的系列文章,值得你持续关注

我尽量用 最少的文字最少的代码。来讲明白数据結构与算法

1. 数组是“线性数据结构”同样的数据结构还有“链表”,“栈”“队列”

2. 与之对立的概念是 “非线性表” 。二叉树堆,图等因为这些数据结构的方向不只是“前”,“后”

3. 数组的原理:在内存地址中找到开始的位置,划定一片连续的内存地址只存储相同类型的数据,这样方便寻址

4. 因为是连续的内存地址所以才能实现随机访问元素

如果不需要排序那么不用每次都对插入位置后的元素做位移。可以尝试替换法

不用每次删除都 给元素移位可以先标记被删除的元素。等删除的元素积累一段之后一并删除

9. 开发时一般都用 arrayList,如果初始化时給设定一个长度那么可以起到优化的作用。减少一部分 O(n) 操作

10. 在数据长度凅定的情况下,建议使用数组这样执行效率更高。

}

blogs.com/aaronLinux/p/.html)然后保存当前程序的现场,跳到中断服务程序处理中断当中断服务程序执行完毕后,恢复先前中断的程序

3.斐波那契数列算法,使用递归和迭代方法的区别

  • 斐波那契额数列的应用:有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法?

这就是一个斐波那契数列:登上第┅级台阶有一种登法;登上两级台阶有两种登法;登上三级台阶,有三种登法;登上四级台阶有五种方法……所以,1235813……登上十级,有89

  • 算法思想:采用递归方式的话效率很低,因为会有很多重复计算可以采用迭代的方法,根据F(0)和F(1)计算出F(2),以此类推可以計算出第n项,时间复杂度为O(n),(用long long数据类型否则数字大时精度不够)
}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信