- Taipei, Taiwan
-
排序演算法 | 合併排序
合併排序(英語:Merge sort,或mergesort),是建立在合併操作上的一種有效的排序演算法,效率為O(n log n)(大O符號)。1945年由約翰·馮·紐曼首次提出。該演算法是採用分治法(Divide and Conquer)的一個非常典型的應用,且各層分治遞迴可以同時進行。 使...
-
排序演算法 | 快速排序
快速排序(英語:Quicksort),又稱劃分交換排序(partition-exchange sort),簡稱快排,一種排序演算法,最早由東尼·霍爾提出。在平均狀況下,排序n個項目要O(n log n)(大O符號)次比較。在最壞狀況下則需要 O(n²)次比較,但這種狀況並不常見。事實上,快速排序 ...
-
排序演算法 | 希爾排序
希爾排序(Shellsort),也稱遞減增量排序演算法,是插入排序的一種更高效的改進版本。希爾排序是非穩定排序演算法。 希爾排序是基於插入排序的以下兩點性質而提出改進方法的: 插入排序在對幾乎已經排好序的資料操作時,效率高,即可以達到線性排序的效率。 但插入排序一般來說是低效的,因...
-
排序演算法 | 插入排序
插入排序(英語:Insertion Sort)是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。插入排序在實現上,通常採用in-place排序(即只需用到O(1)的額外空間的排序),因而在從後向前掃描過程中,需要反覆把已排序...
-
排序演算法 | 選擇排序
選擇排序(Selection sort)是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 選擇排序的主要優點與資料移動有關...
-
排序演算法 | 泡沫排序
泡沫排序(英語:Bubble Sort)又稱為泡式排序,是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。 這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數...
-
排序演算法 | 簡介
在計算機科學與數學中,一個排序演算法(英語:Sorting algorithm)是一種能將一串資料依照特定排序方式進行排列的一種演算法。最常用到的排序方式是數值順序以及字典順序。有效的排序演算法在一些演算法(例如搜尋演算法與合併演算法)中是重要的,如此這些演算法才能得到正確解答。排序演算法也用在處...
-
技術觀念 | 淺談分散式系統 - 微服務
微服務 (Microservices) 是一種軟體架構風格,它是以專注於單一責任與功能的小型功能區塊 (Small Building Blocks) 為基礎,利用模組化的方式組合出複雜的大型應用程式,各功能區塊使用與語言無關 (Language-Independent/Language agnos...
-
技術觀念 | 淺談分散式系統 - 深入理解 REST
REST 是 Web Service 的一種實踐方式,是一種 Web Service 架構風格。它與SOAP 不同,儘管SOAP 也常被用於構建Web Service,但SOAP 本身與傳輸協議無關,可以是HTTP(web service),也可以是SMTP,TCP 甚至FTP,這種獨立性必然會帶...
-
技術觀念 | 淺談分散式系統 - Web 與 Web Service
關於 web 開發,需要理解這麼幾個概念,以及它們之間的關係: Web HTTP Web Server Web Client Web Application Server Web Service Web 是什麼? Web就是全球資訊網,亦作WWW、Web,...