算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。算法是大厂、外企面试的必备项,也是每个高级程序员的必备技能。针对同一问题,可以有很多种算法来解决,但不同的算法在效率和占用存储空间上的区别可能会很大。 那么,通过什么指标来衡量算法的优劣呢?其中,上面提到的效率可以用算法的时间复杂度来描述,而所占用的存储空间可以用算法的空间复杂度来描述。 时间复杂度:用于评估执行程序所消耗的时间,可以估算出程序对处理器的使用程度。 空间复杂度:用于评估执行程序所占用的内存空间,可以估算出程序对计算机内存的使用程度。…

2021年1月19日 0条评论 1147点热度 0人点赞 阅读全文

简介 SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图:   1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。 41位可以表示$2^{41}-1$个数字, 如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是:0 至 $2^{41}-1$,减1是因为可表示的数值范围是从0开始算的,而不是1。 也就是说41位可以表示$2^{41}-1$个毫秒的值,转化成单位年则是$(2^{41}-1…

2019年7月5日 0条评论 1761点热度 0人点赞 阅读全文