ivory-hilted

453. Minimum Moves to Equal Array Elements
268. Missing Number
121. Best Time to Buy and Sell Stock

324

void swap(int *nums, int i, int j) {
    int tmp = nums[i];
    nums[i] = nums[j];
    nums[j] = tmp;
}

int partition(int *nums, int start, int end) {
    int i = start;
    for (......

继续阅读

用户态调度要保存些什么

一、问题

我们希望可以在同一进程用户态下自由调度一些线程(threads of execution),这些是有各自独立ProgramCounter和栈空间的真正线程,而不是像protothreads那样的stackless伪线程.

举例来说:

   Thread_1                Thread_2

   func_A                  func_C
      |                      |
      |----func_B            |---func_D
             |......

5879380404

2624154335

内容大纲:

1 什么是机器学习
2 为什么机器学习是趋势
3 机器学习方法
---3.1 有监督学习
------3.3.1 线性回归
------3.3.2 多项式回归
------3.3.3 Logistic回归
------3.3.4 神经网络
------3.3.5 svm

---3.2 无监督学习
------3.2.1 聚类
------3.2.2 主成分分析
------3.3.3 异常检测
---3.3 其他学习方法
------3.3.1 协同过滤
------3.3.2 增强学习
---3.4 在线学习
4 工具之外
---4.1......

7054646615

超轻量级线程库Protothreads引子

Protothreads是一个Stackless的超轻量级线程库,其特点是顺序执行异步事件驱动的代码(类比协程),可以用于取代复杂的状态机逻辑;由于连栈空间都省了,因此一般用于内存稀缺的系统如嵌入式或传感器网络,但其特点也适用于常见的异步网络框架中的业务代码编码。其核心思想比较简单,本文相关代码和宏定义为简化重写版,且仅涉及小部分.

一、Label变量
GCC编译器支持8177926806,即可以将label的地址值保存在一个void*变量里:

void *jump_addr = &&label_A;  / "&&" 是gcc的扩展......

继续阅读

分布式基础-Paxos、Chubby/Zookeeper

一、Paxos算法

1. 概念
考虑到消息延迟、重发、丢失、网络分化,结点宕机/重启等多类异常,分布式异步环境下要参与各方对某个事物达成一致理解往往比较困难. Paxos是分布式环境下一种共识(Consensus)算法/机制,其问题模型可以描述为:

有多个提议者(Proposer)提出议案(Proposal),有多个决策者(Acceptor),每个决策者可投票决定是否接受(accept)某个议案,当某个议案被大多数(Majority,如半数以上)决策者一致接受后,称该议案被通过,本轮投票结束. Paxos的目的就是保证每轮投票(一次Paxos实例)在大多......

7607495596