随笔分类 - 算法
常见算法
摘要:1、Snowflake算法(分布式全局唯一id) snowflake是Twitter开源的分布式ID生成算法,结果是一个long型的ID。其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫
阅读全文
摘要:稳定排序:排序前后两个相等的数相对位置不变,则算法稳定。 非稳定排序:排序前后两个相等的数相对位置发生了变化,则算法不稳定。 时间复杂度计算方法: 用常数1代替运行时间中的所有加法常数 修改后的运行次数函数中,只保留最高阶 去除最高阶项的系数。 这个与耗时并无直接联系。时间复杂度的计算并不是计算程序
阅读全文
摘要:思路一: 如果我们把众数记为 +1,遇到相同数就加1,遇到不同的数就减1,把其他数记为 -1,将它们全部加起来,显然和大于 0,从结果本身我们可以看出众数比其他数多。 使用for循环取值几个数也许就查找到了。 方法二:哈希表使用hashtab 实现计数也行。 我们使用哈希映射(HashMap)来存储
阅读全文
摘要:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 按位异或的3个特点: (1) 0^0=0,0^1=1 0异或任何数=任何数 (2) 1^0=1,1^1=0 1异或任何数-任何数取反 (3) 任何数异或自己=把自己置0 如果是一个偶数^1,那么答案是偶数+1.如果是一个奇
阅读全文
