当前位置: 首页 > news >正文

仓山福州网站建设cc网站域名注册

仓山福州网站建设,cc网站域名注册,北京大兴区网站建设,网站开发求职信每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。 1-数组的概念和特性 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来…

       每一种编程语言中,基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构。

1-数组的概念和特性

       数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据

线性表(Linear List)就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。其实除了数组,链表、队列、栈等也是线性表结构。

连续的内存空间和相同类型的数据。正是因为这两个限制,它才有了一个堪称"杀手锏"的特性:"随机访问"。a[0]就是偏移为0的位置,也就是首地址,a[k]就表示偏移k个type_size的位置,所以计算a[k]的内存地址只需要用这个公式:a[k]_address = base_address + k * type_size

查询:数组支持随机访问,根据下标随机访问的时间复杂度为O(1)。查找的时间复杂度并不为O(1)。即便是排好序的数组,你用二分查找,时间复杂度也是O(logn)。

插入:假设数组的长度为n,现在,如果我们需要将一个数据插入到数组中的第k个位置。为了把第k个位置腾出来,给新来的数据,我们需要将第k~n这部分的元素都顺序地往后挪一位。如果在数组的末尾插入元素,那就不需要移动数据了,这时的时间复杂度为O(1)。但如果在数组的开头插入元素,那所有的数据都需要依次往后移动一位,所以最坏时间复杂度是O(n)。 因为我们在每个位置插入元素的概率是一样的,所以平均情况时间复杂度为(1+2+…n)/n=O(n)。

删除:如果我们要删除第k个位置的数据,为了内存的连续性,也需要搬移数据,不然中间就会出现空洞,内存就不连续了。如果删除数组末尾的数据,则最好情况时间复杂度为O(1);如果删除开头的数据,则最坏情况时间复杂度为O(n);平均情况时间复杂度也为O(n)。

思想:在某些特殊场景下,我们并不一定非得追求数组中数据的连续性。如果我们将多次删除操作集中在一起执行,删除的效率会高很多;比如JVM标记清除垃圾回收算法的核心思想 就是标记一下,然后一起删除。

2-高级语言的封装

      针对数组类型,很多语言都提供了容器类,比如Java中的ArrayList;ArrayList最大的优势就是可以将很多数组操作的细节封装起来支持动态扩容

对比容器和数组优缺点:

(1)Java ArrayList无法存储基本类型,比如int、long,需要封装为Integer、Long类,而Autoboxing、Unboxing则有一定的性能消耗,所以如果特别关注性能,或者希望使用基本类型,就可以选用数组。

(2)如果数据大小事先已知,并且对数据的操作非常简单,用不到ArrayList提供的大部分方法,也可以直接使用数组。

(3)当要表示多维数组时,用数组往往会更加直观。比如Object[][] array;而用容器的话则需要这样定义:ArrayList<ArrayList > array。

       对于业务开发,直接使用容器就足够了,省时省力。毕竟损耗一丢丢性能,完全不会影响到系统整体的性能。但如果你是做一些非常底层的开发,比如开发网络框架,性能的优化需要做到极致,这个时候数组就会优于容器,成为首选

http://www.yayakq.cn/news/133446/

相关文章:

  • 山东小语种网站建设网站的通知栏一般用什么控件做
  • 一流的中小型网站建设市场营销策划案例经典大全
  • 洮南网站建设哪家专业深圳市住建工程交易
  • 什么网站都能打开的浏览器怎样免费建立网站
  • 濮阳网站建设在哪做速橙科技有限公司网站建设
  • 江西邮电建设工程有限公司网站济南网络免费推广网站
  • 网站后台开发做什么mvc网站建设的实验报告
  • 站长之家网站金融行业做网站
  • 深圳网站设计价格制作灯笼作文300字
  • 贵州建设监理协会网站为新公司取名
  • 网站策划步骤公司名后缀的邮箱
  • 个人网站是啥nginx建设网站教程
  • 广州 网站设计公司排名广州网站seo公司
  • 兰州网站建设方案昆明网站建设论坛
  • 手机怎么打开禁止访问的网站站酷logo设计
  • 一个域名可以做两个网站么中华室内设计网公众号下载
  • 重庆黄埔建设集团网站做网站要会哪些技术
  • 怎样建设自己的网站WordPress批量删除无用标签
  • 海运外贸流程google seo 优化
  • 做dnf辅助网站福州网站建设方案书
  • 淄博做网站跟优化济南英文网站建设
  • 唐山建设企业网站阜阳企业网站推广
  • 网站怎么定位义乌网红村
  • 上下框架 网站响应式布局网站
  • 石家庄站全景图网站seo 规范
  • 汽车宣传网站模板如何做挂qq的网站
  • 怎么检测网站是否安全出口退税在哪个网站做
  • 做编程的+网站有哪些内容做网站的公司倒闭
  • 母婴网站建设前期规划为某一企业规划网络促销方案
  • 什么摄像头做直播网站石材做网站