如何激怒一个Rust爱好者?让他用Rust实现一个双向链表即可!
总所周知,Rust中是不能同时存在两个可变引用的,所以在Rust中实现双向链表就会变得非常反人类(因为需要同时存在前后节点同时指向对方的情况);
同时,双向链表也引入了循环引用的问题,这也是导致内存难以释放的一个场景;
没想到一个简简单单的双向链表居然涉及如此之多的问题!
本文就使用Unsafe Rust实现了双向链表;
源代码:
如何激怒一个Rust爱好者?让他用Rust实现一个双向链表即可!
总所周知,Rust中是不能同时存在两个可变引用的,所以在Rust中实现双向链表就会变得非常反人类(因为需要同时存在前后节点同时指向对方的情况);
同时,双向链表也引入了循环引用的问题,这也是导致内存难以释放的一个场景;
没想到一个简简单单的双向链表居然涉及如此之多的问题!
本文就使用Unsafe Rust实现了双向链表;
源代码:
一致性Hash算法是解决分布式缓存等问题的一种算法;
本文介绍了一致性Hash算法的原理,并给出了一种实现和实际运用的案例;
源代码:
在前面几种常见排序方法的优化(下)一文中, 我总结了针对归并排序的一些优化方法.但是即使是优化, 整个排序过程也是建立在单个线程当中的
而自顶向下的归并排序在将数组拆分之后, 左右两部分是不会被同一个递归栈访问的, 容易想到可以开辟两个线程(递归的)分别进行左右归并排序
本篇就在此基础之上探讨有关ForkJoin和Stream的一些操作
本文内容包括:
源代码:
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
菲波那切数列在一些场景中很有用. 相信如何计算第n个斐波那契数是一些人接触到的第一个递归算法(尽管他的效率很低). 本篇讲述了如何一步步优化计算fib(n)
本文内容包括:
源代码: https://github.com/JasonkayZK/Java_Algorithm/tree/master/src/main/java/algorithm/basic
本文部分内容转自: 斐波那契数列 — 四层优化
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
最近花了几天重温了一下《算法(第四版)》, 重新把书中的算法实现了一下, 并且思索了一下, 把常见的比较排序算法都给优化了一下, 然后进行了性能测试. 也算是复习了一下排序算法吧.
阅读本篇之前最好有常见几种基于的比较排序算法的基础
本文内容包括:
源代码:
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
最近花了几天重温了一下《算法(第四版)》, 重新把书中的算法实现了一下, 并且思索了一下, 把常见的比较排序算法都给优化了一下, 然后进行了性能测试. 也算是复习了一下排序算法吧.
阅读本篇之前最好有常见几种基于的比较排序算法的基础
本文内容包括:
源代码:
如果觉得文章写的不错, 可以关注微信公众号: Coder张小凯
内容和博客同步更新~
最近总结面试题, 复习了一下面试题, 顺便研究了一下快排的优化
主要内容: