算法1.3

作者: 鹤书嗣音 | 来源:发表于2017-11-21 21:01 被阅读0次
  • Java 应用类型必须被实例化为引用类型,即封装类型(如int-》Integer)

    • 自动装箱

    • 自动拆箱

  • 背包:一种不支持从中删除元素的集合数据类型,用于收集元素并无序遍历迭代所有收集到的元素

    • 用例:计算平均值
  • 基于数组的栈大小动态调整

    • 栈的大小在数组创建时固定,数组大小无法改变,容易在压入时造成栈溢出的问题或空间浪费的问题,因此在使用栈前必须预估栈的最大容量

    • 修改数组大小:将原栈转移到另一更大容量的数组中

      private void resize(int max){
        Item[] temp = (Item[]) new Object[max];//max大于原栈大小N
        for(int i = 0; i<N;i++){
          temp[I] = a[I];          
        }
        a=temp;
      }
      
    • 压入数据:检查栈大小N与数组大小a.length,相等则a.length加倍

      private void push(Item item){
        if(N == a.length){resize(2*a.length);}
        a[N++] = item;
      }
      
    • 删除栈顶元素(最近添加元素):删除栈顶元素,然后检查a.length是否为N4倍,是则将a.length减半,使其保持约半满状态,接下来仍可以进行多次push或pop操作

      private Item pop(){
        Item item = a[--N];
        a[N] = null;//避免被删除对象游离,使其被垃圾回收器回收
        if(N>0 && N <= a.length/4){resize(a.length/2);}
        return item;
      }
      
    • 由以上操作可知栈的数组大小为偶数

相关文章

  • 算法1.3

    Java 应用类型必须被实例化为引用类型,即封装类型(如int-》Integer)自动装箱自动拆箱 背包:一种不支...

  • 算法1.3(2)

    链表,是数组的一种重要替代方法实现:private class Node{ Item item; Node n...

  • JVM知识点汇总

    1.垃圾回收机制1.1 标记 - 清除算法1.2 标记 - 整理算法1.3 复制算法1.4 分代收集算法zxc2....

  • 垃圾收集器ParNew&三色标记法

    1. 垃圾收集算法 1.1 分代收集理论 1.2标记-复制算法: 概念缺点:浪费空间 1.3.标记-清除算法: 概...

  • 排序算法总结

    n^2的算法:冒泡排序,选择排序,插入排序n^1.3的算法:希尔排序nlogn的算法:归并排序、快速排序 泛型的使...

  • 常见算法前端JS实现 — 排序

    1.排序算法 1.1 冒泡排序 1.2 快速排序 1.3 二路归并

  • 1.3 SHA系列算法

    信息摘要技术 - SHA系列 SHA系列算法分为三个分支:SHA-1、SHA-2和SHA-3,其中SHA-2包括S...

  • DBA(MySQL)学习-索引及执行计划

    1.索引 1.1 作用 1.2 索引的种类(算法) 1.3 B树算法普及 1.4 在功能上的分类 1.4.1 辅助...

  • 核心技术-索引

    1.3索引算法的演变 1.3.1 BTREE算法,由来 BTREE讲究的是查找数据的平衡,让我们的查询可以快速锁定...

  • 中文分词的方法

    1、基于字符串匹配的方法 1.1 正向最大匹配分词算法1.2 逆向最大匹配分词算法1.3 双向最大匹配分词算法1....

网友评论

      本文标题:算法1.3

      本文链接:https://www.haomeiwen.com/subject/esywvxtx.html