数据结构和算法-2-数组

数组可以说是我们平时应用最广泛的数据存储结构了,而且使用非常简单,非常适合作为介绍数据结构的起步点。

普通数组

相信每个Android或java开发者都已经非常熟悉折半查找过程了,这数组c语言里也就不再多说了。

有序数组 & 二分法查找

二分查找也称折半查找,是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。

公式:2的n次数组和链表的区别幂>=arr.size, n为查找所需次数 ,2的n次幂为n次查找可覆盖的范围, 即 范围是次数的指数,次数是范围的对数。

有序数组及二分查找实现如下:


                                            数据结构和算法-2-数组


                                            数据结构和算法-2-数组

可以在java的main方法中调用下面方法进行测试


                                            数据结构和算法-2-数组

为什么不用数组表示一切?

为什么不用数组进行所有的数据存储?因为数组还是又许多缺点和不足的

1. 无序数组插入快,查找和删除慢;有序数组查找快,插入和删除慢;没有一个最优的解决方案。

2. 数组创建后大小是固定的,而程序开发中往往不知道一共有多少项数折半查找比较次数据,容易触发数组角标越界的异常。

我是今阳,有序数组唯一化如果想要折半查找法进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章