[TOC]
# 算法挑战
算法挑战 是有效的锻炼能力的方法,因为总有不止一种的方法来解决它们。这为决策和演算决策提供了可能性。当解决算法问题的时候,我们应该挑战自我,从多个角度来看 问题的定义 ,然后权衡各种方式的 益处 和 缺陷 。通过足够的联系,我们甚至可以一瞥宇宙的真理; 没有 “完美” 的解决方案 。
真正掌握 算法 就是去理解 数据 和 结构 之间的关系。数据结构和算法之间的关系,就如同 “阴” 之于 “阳”, 玻璃杯 之于 水 。没有玻璃杯,水就无法被承载。没有数据结构,我们就没有可以用于逻辑的对象。没有水,玻璃杯会因为缺乏物质而变空。没有算法,对象就无法被转化或者 “消费”。
关于数据结构深入分析,可以参考: Data Structures in JavaScript;
# 希尔排序
希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破 O (n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。
> [图解排序算法 (二) 之希尔排序](https://www.cnblogs.com/chengxiao/p/6104371.html)
# 参考
https://www.runoob.com/w3cnote/shell-sort.html
- 修仙之路
- 基础原理篇
- JS和Node.js事件环机制剖析
- 一图理解原型链
- 手写篇
- 基础手写
- 手写实现 Promise A+ 类库
- 手写 CommonJS
- 手写 Express 框架
- 手写 React Router 4.0
- 手写虚拟 DOM 和 DOM-Diff
- 手写 Webpack 实现
- 手写一个 MVVM 类库
- 手写一个 Vue-cli 脚手架
- 手写 JWT 类库
- 手写 Mobx 类库
- 手写前端性能和错误监控框架
- 手写 Vue 路由
- 手写 Vuex 实现
- 手写 redux 状态容器
- 手写 throttle 和 debounce
- Node 高级
- Mongodb
- 安全测试篇
- CSRF原理实现
- XSS原理实现
- 九种跨域方法全解析
- 编写单元测试
- 爬虫篇
- 使用puppeteer破解滑动验证码
- 工程篇
- 使用AST语法树手工转译ES6代码
- 编写自己的webpack插件
- 实战篇
- webpack4.0 实战
- Canvas+Websocket 实现弹幕
- canvas 动效
- SVG 动效
- CSS3 实现 Apple Watch 中的呼吸灯效果
- CSS3 实现动态气泡屏保效果
- 算法篇
- 基础知识
- 服务器端
- 分布式架构中的幂等性
- TCP/UDP
- Docker
- V8
- 动画篇
- 贝塞尔曲线
- requestAnimationFrame
- 框架篇
- 随记