• 运算符性能优化


    尽量避免使用乘*、除/、模%、浮点数运算,效率比较低

    1,移位与浮动数运算性能比较

    1,新容量为旧容量的1.5倍

    2,注意一个bug: >>运算符不加()报错 涉及到运算符优先级问题

    2,对于 % 的优化(模数、被模数 倍数小于的情况下): 可以转化成减法

     ✿ n % m 等价于 n – (m > n ? 0 : m) 的前提条件:n < 2m

    private int index(int index) {
       index += front;
    //return index % elements.length;
       //优化为:
    return index - (index >= elements.length ? elements.length : 0); }

    3,对于 % 的优化: 可以通过统一公式~例如

     统一成公式(奇数的情况)n0 = (n + 1)/ 2; 然后考虑如何符合偶数的情况

    【可以看到偶数和奇数就差个 1/2 ,咱需要把相对于偶数,奇数多出来的1/2 消除掉,想到 向下取整floor,可以消除小数, 同时 floor 的加入,并不影响原先奇数的结果】

     

    【这里只需要将 / 优化成右移】

    4,对于 % 的优化: 可以通过&,【前提:将数组的长度设计为 2 的幂(2n)】,例如:

    ✿ 哈希函数:作用---将哈希表的key转化成对应表中的索引,从而存放key对应的value。

    哈希函数具体细节过程:

    ① 首先生成 key 的哈希值(必须是整数);

    ② 再让 key 的哈希值跟数组的大小进行相关运算,生成一个索引值;

    这里使用 & 【前提:将数组的长度设计为 2 的幂(2n),则最大的索引就是2n -1)的原因,例子:

    例如:(一个数 & 2n -1)【111...】它会等于自己本身,

    同时这个数还是不超过数组的最大范围 2n,实现哈希值,控制在 0 - 2n -1)的区间

  • 相关阅读:
    asp.net编程基础
    http://blog.csdn.net/pjw100/article/details/5261582
    英雄无敌3版的仙剑奇侠传
    另类DATAGRID数据编辑修改
    使用INDY组件发送邮件,DEMO程序没有讲到的一些内容.如邮件格式定议
    .net 简单实现MD5
    VB.NET 对于类型的传递按值或者按引用
    Start with Database Connection Pool 连接管理
    ASP页面之间传值
    正则表达式
  • 原文地址:https://www.cnblogs.com/shan333/p/15376331.html
Copyright © 2020-2023  润新知