[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
- 框架篇
- 隨記