未完
- Jul 03 Wed 2013 01:09
-
[ Problem ] 大數除法和餘數 (Big Number - Division & Big Mod) **
- Jul 03 Wed 2013 01:02
-
[ Problem ] 大數加減法與乘法 (Big Number - Addition & Substraction & Multiplication) **
為什麼這三個運算要放在這裡一起討論呢?
原因是這三個在大數運算中 算是較為簡單的
如果想要了解除法和餘數運作
可以參考這篇 http://codelearner.pixnet.net/blog/post/131503030
所謂"大數" 到底可以處理哪些問題呢?
- Jul 03 Wed 2013 00:57
-
[ Data Structure ] 霍夫曼編碼 (Huffman Coding) **
- Jul 02 Tue 2013 23:10
-
[ Data Structure ] 隊列/佇列 (Queue) **
A 講解
隊列(或者叫佇列)是一種資料結構 具有以下特性:
● 先進先出 (First-In-First-Out / FIFO)
● 插入(Insert)必發生在尾端(Rear) 而刪除(Delete)必發生在前端(Front)
在這邊我們介紹以下三種相關問題:
- Jul 02 Tue 2013 22:02
-
[ UVa ] 12149 Feynman
A 講解
這題即是用1^2 + 2^2 + ....... + n^2 之公式
所以利用 n(n + 1)(2n + 1) / 6 即可
B 程式碼如下:
- Jul 02 Tue 2013 21:50
-
[ UVa ] 10783 Odd Sum
- Jul 02 Tue 2013 20:41
-
[ UVa ] 10954 Add All
A 講解
建一個min heap 每次從中取兩個元素出來 並推回相加後結果
另外 用"cost"變數記載花費
重複直至heap的大小為"1"
此時推進去的即為全部相加的和 而"cost"變數的值 即為答案
- Jul 02 Tue 2013 19:31
-
[ Sorting ] 堆排序法 (Heap Sort)
A 講解:
堆排序法 平均時間複雜度Θ(n lg n) 最差最優都是O(n lg n)
概念就是當資料一個個讀進來時
就用"插入" (Insert)建構一個最大堆
建立好後 將第一個元素(最大) 和最後一個元素交換 此步驟即類似"刪除"(delete)指令
- Jul 02 Tue 2013 15:47
-
[ Data Structure ] 堆 (Heap)
- Jul 02 Tue 2013 00:37
-
[ Sorting ] 快速排序法 - C語言簡單實做篇 (Quick Sort)
A 講解:
快速排序法 平均時間複雜度 O(n lg n) 但最糟測資會到 O(n^2) 非為一個stable sort
但總體來說 被公認為最有效率排序演算法
其實C語言函式庫內就有提供 但這裡要做一個實做來了解內部運作
基本概念就是 先選一個"鍵值" (程式碼變數splitting)
- Jul 01 Mon 2013 22:21
-
[ Sorting ] 插入排序法 (Insertion Sort )
A 講解:
插入排序法 時間複雜度 O(n^2) 為一個stable sort
假設一筆資料 5 6 4 89 25 33 8
用此排序法 從六開始 (所以從陣列第二個元素開始)
其右邊為"未排序" 左邊為"已排序"
- Jul 01 Mon 2013 21:01
-
[ Searching ] 二元搜尋法 (Binary Search)