随笔分类 - 算法
摘要:/* 分为4个区段 p x j< k < r, 待扫描 k = r, arr[k] = x */ function partition(arr, p, r){ var i = p - 1, j = p, x = arr[r]; while(j < r){ if(arr[j] <= x){ i = i + 1; swap(arr, i, j); } j = j ...
阅读全文
posted @ 2018-11-29 09:34
chenyizh
摘要:1、the-super-tiny-compiler https://github.com/jamiebuilds/the-super-tiny-compiler 2、Javascript语言精髓 实现JSON解析器 3、图解设计模式 Interpreter模式
阅读全文
posted @ 2018-08-27 19:37
chenyizh
摘要:定义:堆是一种特殊的完全二叉树,(最小堆:所有父节点都比子节点小), 完全二叉树指除最右位置上有一个或多个叶节点缺少外,其他都是丰满的;可以使用数组存储; 堆两个重要操作:shiftdown,shiftup; 【堆顶元素编号为1,父子节点编号关系:父节点i, 左孩子i*2, 右孩子i*2+1】...
阅读全文
posted @ 2015-12-02 23:19
chenyizh
摘要:1、冒泡排序:每次比较相邻元素,若顺序错误将交换位置,本质也为消除序列中的逆序对;从小到大排序,则越大越靠后,一趟比较,将有一个元素归位;2、快速排序:每次排序设置一个基准点,小于等于基准点全部放在左边,大于等于基准点全部放在右边,每一轮处理,就是将该轮基准点归位(实现中为左右哨兵相遇时); ...
阅读全文
posted @ 2015-12-02 22:35
chenyizh
浙公网安备 33010602011771号