摘要: 一个快指针(慢指针的两倍),一个慢指针,如果有循环必定相遇。 假设起点到循环点长度为a,相遇点到循环点长度为b,循环剩下长度为c。 则很容易得到: 2*(a+b)==a+b+n*(b+c); 变形得: a=(n-1)*(b+c)+c; 可以得出,再次另一个指针指向链表头,和相遇点指针同速前进,必定在 阅读全文
posted @ 2018-03-29 14:37 eel808 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。 让第一个数6作为基准数,接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边。 分别从初始序列“6 1 2 7 9 3 4 5 10 8”两端开始“探测”。 先从右往左找一个小于6的数,再 阅读全文
posted @ 2018-03-15 20:56 eel808 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。 每条线程都需要有一个独立的程序计数器,各条线 阅读全文
posted @ 2018-03-14 21:37 eel808 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 我们用个简单的例子来看看这是什么意思: 通过此图你可以看到,在 2 个 4元素序列里你只需要迭代一次,就能构建最终的8元素已排序序列,因为两个4元素序列已经排好序了: 1) 在两个序列中,比较当前元素(当前=头一次出现的第一个) 2) 然后取出最小的元素放进8元素序列中 3) 找到(两个)序列的下一 阅读全文
posted @ 2018-03-09 21:03 eel808 阅读(890) 评论(0) 推荐(0) 编辑
摘要: Socket是"打开—读/写—关闭"模式的实现,以使用TCP协议通讯的Socket为例,其交互流程: 服务器根据地址类型(ipv4,ipv6)、Socket类型、协议创建Socket 服务器为Socket绑定ip地址和端口号 服务器Socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务 阅读全文
posted @ 2018-03-08 22:00 eel808 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 作者: dreamcatcher-cx 出处: <http://www.cnblogs.com/chengxiao/> 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在页面明显位置给出原文链接。 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔 阅读全文
posted @ 2018-03-08 19:54 eel808 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 作者:李小翀链接:https://www.zhihu.com/question/22764869/answer/31277656来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 首先推荐4本书 大型分布式网站架构设计与实践 http://item.jd.com/1152 阅读全文
posted @ 2017-04-19 22:00 eel808 阅读(425) 评论(0) 推荐(0) 编辑