java中数组基础

数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。由于数组十分易懂,所以它被用来作为介绍数据结构的起步点,并展示面向对象编程和数据结构之间的相互关系。这里将会介绍Java中的数组并展示自制的数组类。还将分析一种特殊的致组:有序数组.其中的数据是按关键字升序(或降序)排列的。这中排列是快速查找数据项成为可能:即二分查找法
对于大多数数据结构来说主要是分析删除,插入,查找,这三种算法;数组也不例外;
(首先声明数据项没有相同的)
先说无序数组:
插入
其插入算法比较快;新数据项总插在数组的第一个空位置上,代码也比较简单
if(index<a.lenght())
a[index]=na;index为数组的实际存储的数据项长度;
查找
必须平均搜索一半的数据项来查找特定数据值。找数组头部的数据项快,找数组尾部的数据项慢。设数据项个数为N,则一个数据项的平均查找长度为N/2。在最坏的情况下,待查的数据项在数组的最后,这需要N步才能找到。
删除
需要先找到数据项,将数据项删除,在将后面的依次向前填充,不能出项空洞,即相邻数据项之间存在空内容
有序数组
    这里需用到二分查找,其使用的方法与我们在孩童时期常玩的猜数游戏中所用的方法一样。在这个游戏里,朋友会让你猜她正想的一个1至100之间的数。当你猜了一个数后,她会告诉你三种选择中的一个:你猜的比她想的大,或小,或猜中了。
pubic int find(long infind){
  int lowerBound=0;
  int upperBound=nElems-1;
  int curIn;
  while(true){
   curIn=(loerBound+upperBound)/2;
   if(a[curIn]==infind)
      reurn curIn;
   else if(lowerBound>upperBound)
      return nElems
   else{
      if(a[curIn]<infind)
         lowerbound=curIn+1;
      else
          upperBound=curIn-1;
   }
  }
}
对与有序数组的插入与删除算法比较慢,但对于某些需要查找更多的程序来说速度提高是很明显的
不需要的东西不用写了 只需记住这些即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值