[Algorithm] Quick Sort (快速排序)

快速排序(英語:Quicksort),又稱分割區交換排序(partition-exchange sort),簡稱快排 Quick Sort 的定義 (參考維基百科) 快速排序使用分治法(Divide and conquer)策略來把一個序列(list)分為較小和較大的2個子序列,然後遞迴地排序兩個子序列 主要步驟 從數列中挑選一個基準點,接著分別由數列的兩邊開始往中間找 如果右邊找到一個值比基準點小,左邊找到一個值比基準點大,就將他們互換 如此將所有數列跑過一輪即可完成排序 用文字描 »

[Algorithm] Bubble Sort (泡沫排序)

Bubble Sort 的定義 (參考維基百科) 重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來 走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成 主要步驟 比較相鄰的元素。如果第一個比第二個大,就將他們兩個交換位置 向每一對相鄰元素作同樣操作,從開始第一對到結尾最後一對 時間複雜度:O(N^2) 範例程式碼 Ruby 範例 附上 Ruby 的 online sandbox,有興趣可以把 code 貼進去玩玩看 arr = »

XSS (Cross-site scripting)

寫得很棒的文章,舉出很多淺顯易懂的例子介紹 xss 攻擊的種類及如何預防 前端安全系列(一):如何防止XSS攻击? 筆記: Cross-site scripting(跨網站腳本攻擊),因避免與 CSS 混淆,通常簡稱為:XSS 惡意使用者將程式碼注入到網頁上,其他使用者在觀看網頁時就會受到影響 XSS 攻擊種類 XSS 攻擊分為三種: 儲存型 常見於會用到使用者資料的情況。e.g. 論壇發文、商品評價、使用者私訊 反射型 常見於使用 URL 傳遞參數的狀況。e.g »

CAP定理(CAP theorem)

又稱布魯爾定理(Brewer’s theorem) 最初由 Eric Brewer (目前 Google VP Infrastructure)在 2000 年提出 是指對於一個分布式系統(Distributed System)來說,不可能同時滿足以下三點 一致性(Consistency): 每次對系統讀取皆可得到最新資料 可用性(Availability): 每次對系統請求皆可得到回應,意即正常讀寫 分區容錯性(Partition tolerance): 如網路出問題導致資料分區,系統仍 »

TCP 與 UDP 的差別

UDP (User Datagram Protocol、使用者資料包協議),是一種無連線的協議 優點 傳輸量大 速度快 缺點 可靠性低(不管對方有沒有收到、到達順序不一致問題) TCP (Transmission Control Protocol、傳輸控制協議) ,是一種面向連線的、可靠的、基於位元組流的傳輸層通訊協議 優點 可靠性高(循序編號、資料確認與重送) 流量控制 缺點 耗資源(建立連線需三次握手) Ref: 一文搞懂TCP與UDP »