Fibonacci序列生成算法的优化
菲波那切数列在一些场景中很有用. 相信如何计算第n个斐波那契数是一些人接触到的第一个递归算法(尽管他的效率很低). 本篇讲述了如何一步步优化计算fib(n)
本文内容包括:
- 菲波那切数列定义
- 计算斐波那契方法
- 斐波那契方法性能测试
源代码: https://github.com/JasonkayZK/Java_Algorithm/tree/master/src/main/java/algorithm/basic
本文部分内容转自: 斐波那契数列 — 四层优化
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
几种常见排序方法的优化(下)
最近花了几天重温了一下《算法(第四版)》, 重新把书中的算法实现了一下, 并且思索了一下, 把常见的比较排序算法都给优化了一下, 然后进行了性能测试. 也算是复习了一下排序算法吧.
阅读本篇之前最好有常见几种基于的比较排序算法的基础
本文内容包括:
- 归并排序优化及性能测试
- 快速排序优化及性能测试
- 堆排序序优化及性能测试
- 非比较排序介绍
源代码:
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
几种常见排序方法的优化(上)
最近花了几天重温了一下《算法(第四版)》, 重新把书中的算法实现了一下, 并且思索了一下, 把常见的比较排序算法都给优化了一下, 然后进行了性能测试. 也算是复习了一下排序算法吧.
阅读本篇之前最好有常见几种基于的比较排序算法的基础
本文内容包括:
- 排序算法的一些通用方法抽象类(父类BaseSort)
- 冒泡排序优化及性能测试
- 选择排序优化及性能测试
- 插入排序优化及性能测试
- 希尔排序以及不同递增序列的性能测试
源代码:
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
关于写代码这几年的一些感悟和总结
写代码有很长一段时间了, 从嵌入式到Java. 未来技术的发展只会越来越快, 我们能做的只是砥砺前行. 本篇从多个角度讲述了开始接触互联网之后, 笔者生活上发生的一些变化.
Redis实现分布式Session
传统的session由服务器端生成并存储,当应用进行分布式集群部署的时候,如何保证不同服务器上session信息能够共享呢?本篇通过实战讲述如何使用Redis实现分布式Session共享
源代码: https://github.com/JasonkayZK/Java_Samples/tree/redis-session
UUID生成算法,UUID还是snowflake
UUID是通用唯一识别码(Universally Unique Identifier)的缩写, 其目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,就不需考虑数据库建立时的名称重复问题. 目前最广泛应用的 UUID,即是微软的 Microsoft’s Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 档案系统、LUKS 加密分割区等
本篇总结了一些UUID生成算法, 以及一些UUID生成算法的实现;
系列文章:
怎么保证Redis和DB中的数据一致
只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?本篇文章探讨了如何保证Redis和DB中的数据一致
本文转自: 怎么保证 Redis 和 db 中的数据一致
QuickSort总结
最近总结面试题, 复习了一下面试题, 顺便研究了一下快排的优化
主要内容:
- 快排算法实现原理
- 基于Java的快排算法实现
- 通过泛型和Comparator接口实现任意数据任意顺序排序
- 快排时间复杂度(最好, 最差, 平均), 空间复杂度
- 快排可做的优化
Redis面试相关问题
本篇总结了Redis在面试中经常碰到的一些问题, 以及在项目开发中Redis常见的问题, 主要包括:
- Redis功能, 使用场景(缓存, 分布式事务…)
- Redis操作
- Redis数据结构
- Redis设计(前缀, 名称等)
- Redis的hotkey
- Redis事务
- Redis实现分布式锁
- Redis持久化
- Redis架构模式(一主一从[Master-Slave], Redis集群[Redis-Cluster], 哨兵模式[Redis-Sentinel])
- Redis集群(如何保证同步…)
- 缓存算法(LRU等)
- 一致性哈希算法?什么是哈希槽?
- 什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
- ……