iT邦幫忙

演算法相關文章
共有 302 則文章
鐵人賽 Software Development DAY 27

技術 [演算法] 並查集 (Union-find Algorithm)

並查集又稱不相交集資料結構,其實是之前討論過的資料樹的延伸。剛開始的樹每一個都是獨立的,一棵樹只有一個節點。在透過尋找相同的根節點 (root),來將這些樹逐漸...

鐵人賽 Software Development DAY 26

技術 [演算法] 最短路徑 (Floyd-Warshall 演算法)

網路上有各式各樣的地圖出現,背後的運算就有很多的演算法、資料庫和參數來支持。還記得之前討論過有關圖的深度及廣度搜尋,就有提到過怎麼找最短的路徑,而這只是其中最基...

鐵人賽 Software Development DAY 25

技術 [演算法] K-means 分群 (K-means Clustering)

先說說什麼是分群?分群就是對所有數據進行分組,將相似的數據歸類為一起,每一筆數據的能有一個分組,每一組稱作為群集 (Cluster)。那分類根據什麼來定義,常用...

鐵人賽 Software Development DAY 20

技術 [演算法] 廣度優先搜尋 (Breadth-first Search)

廣度優先搜尋 (Breadth-first Search),也稱之為寬度優先搜尋。和深度優先搜尋不同的是,深度優先是透過函數的遞迴來延伸運算,而廣度優先則是透過...

鐵人賽 Software Development DAY 19

技術 [演算法] 費氏搜尋 (Fibonacci Search)

在討論費氏搜尋之前,要先了解一下費氏數列。 費氏數列 (Fibonacci numbers),又稱費波那契數列,是指在一串數字中,每一項是前兩項的和。數學上的定...

鐵人賽 Software Development DAY 18

技術 [演算法] 深度優先搜尋 (Depth-first Search)

還記得之前有討論過的列舉法嗎?今天我們來做個延伸。 之前的列舉法是將用 for 迴圈的方式,一層一層的舉出所有的可能,然後將所有舉出的可能和我們所設定的條件相比...

鐵人賽 Software Development DAY 17

技術 [演算法] 插補搜尋 (Interpolation Search)

插補搜尋 (Interpolation Search),其實用的就是數學裡內插法的概念來運算。在已排序的資料中,將資料視為線性的解,藉由在線上的移動來尋找我們需...

鐵人賽 Software Development DAY 16

技術 [演算法] 二分搜尋 (Binary Search)

還記得之前討論過的樹嗎?都會分成左子樹和右子樹,而二分搜尋也是遵循這樣的邏輯來運算的。 二分搜尋 (Binary Search) 是取 已排序資料的中間索引的值...

鐵人賽 Software Development DAY 15

技術 [演算法] 循序搜尋 (Sequential Search)

講了幾天的資料結構,先來講幾個有關搜尋的演算法,之後再繼續接回資料結構的其他部分。 循序搜尋 (Sequential Search),說白了就是在已排序的資料中...

鐵人賽 Software Development DAY 5

技術 [演算法] 列舉法 (Enumeration)

經過前幾天的演算法,都需要小動腦和邏輯上的思考對吧?透過一些比較和分配的技巧,來做資料的排序。 今天,就來講講列舉法 (俗稱暴力破解法)。 列舉法 (Enume...

鐵人賽 Software Development DAY 4

技術 [演算法] 基數排序法 (Radix Sort)

今天來講一個「非比較性」的演算法,基數排序法 (Radix Sort)。其實之前的排序法也是屬於 非比較性 的演算法。怎麼說?以泡沫和快速為例,這兩個演算法都是...

鐵人賽 Software Development DAY 3

達標好文 技術 [演算法] 快速排序法 (Quick Sort)

有鑒於昨天學的泡沫排序法,效率篇低,就有某位聰明的科學家發明了快速排序法,其實也有用到一點二元分類的概念。 快速排序 (Quick Sort) 的想法是說,先找...

鐵人賽 Software Development DAY 2

技術 [演算法] 泡沫排序 (Bubble Sort)

拉蒙碎碎念 其實昨天的桶子演算法雖然直覺、簡單好懂,但也遺留了一些問題。舉例來說如果資料很大,就會很浪費空間,或者當資料有小數的時候,沒辦法產生相對應的桶子。因...

鐵人賽 Software Development DAY 1

達標好文 技術 [演算法] 桶子排序法 (Bucket Sort)

拉蒙碎碎念 還記得以前剛學程式設計的時候,老師都會從幾個較簡單的演算法教起,讓學生比較好學也快上手。其實演算法就是在學邏輯,語法啊、技巧啊,我個人倒覺得是其次。...

鐵人賽 自我挑戰組 DAY 1

技術 Day 1: 演算法無所不在

寫程式的目的,即是把不斷重複的計算流程自動化。而演算法,則是用以明確定義自動化後的計算流程。在設計演算法之前,除了對於要解決的問題有一定程度的認識以外,還必須考...

技術 [LeetCode]N-Queens經典問題八皇后

前言 今日感冒在家剛好利用時間打一篇文章,天氣變冷了大家要多注意保暖阿。 題目 給定數字n,並列出n * n皇后所有可能。 輸入 4 輸出 [ [&quot...

技術 SEO最新的演算情形想表達什麼呢?

搜尋引擎優化(SEO)是快速變化且競爭的,而行銷人員無從選擇的必須用最快的速度去適應這些更新。首先有幾點我們必須知道的:→ Google每年更改演算法超過600...

技術 [Google Code Jam] C++ Waffle Choppers 華夫切餅機

前言 這題看到的時候很天真的直接切水平判斷,再切垂直判斷,結果當然是連下面測資都過不了,因為少判斷每個Block擁有的餅乾數量,但慶幸不用重寫,只要再多一個判斷...

技術 [Google Code Jam] C++ Cubic UFO 不明立體飛行物

前言 這道題目第一個測資比較簡單,但第二個測資我很堅持求公式解但還是失敗了,但至少有得到角度,還好最後發現官方提供一些訊息(比賽結束的解析),但發現其實題目就有...

技術 [Google Code Jam] C++ Go, Gopher! 互動題目

前言 這題題目實在有夠長,光題目我就看了非常久,題目看不懂真的很慘連做都沒辦法做(翻譯我也看不懂,中英文都很差真的很慘..),還好最後多虧這位大大的文章和測試工...

技術 [Google Code Jam] C++ Trouble Sort 麻煩排序

前言 這是Google的第二題,這題跟上一題比起來簡易了許多,主要使用排序功能。我國文造詣真的很差,打篇文章都筆寫程式還久了有點慘...請見諒。原題目 題目 C...

技術 [Google Code Jam] C++ Saving The Universe Again 再次拯救宇宙

前言: 大家好,第一次發文往後請各位前輩多多指教,我文筆很糟,有手殘的地方請見諒。首先先感謝朋友介紹Google Code Jam這活動,但錯過了沒機會參加到,...

鐵人賽 Modern Web DAY 6
每日文章推薦 系列 第 6

技術 Day 6 自知之明

放棄 每個人有適合做的事情 也有不適合做的事情 像我就不適合做跟視覺設計有關的事情 所以我會前端 但是看了css我還是弄不出能看的網站 自從bootstrap出...

技術 要如何證明你所做的電腦模擬就是你問的問題的答案?

我是國中組「柏拉圖的抉擇--競爭參考與期望值的策略模型探討」的作者,今天是第57屆中小學科展複賽第一天。老師問了一個問題: 你都是用電腦模擬,怎麼證明你的模擬...

鐵人賽 開發技術 DAY 19
連續30天,挑戰演算法 系列 第 19

技術 [Day19] 30 天挑戰演算法 - 數數字

題目來源:Count and Say 問題: 這個「數數字」的數列的格式為: 1, 11, 21, 1211, 111221, ... 其中 1 要念 一個...

鐵人賽 開發技術 DAY 14
連續30天,挑戰演算法 系列 第 14

技術 [Day14] 30 天挑戰演算法 - 從排序陣列中刪除重複值

題目來源:Remove duplicates from sorted array 問題: 給予一個已排序過的陣列(ARRAY),請計算移 除該陣列中所有重複出現...

鐵人賽 開發技術 DAY 12
連續30天,挑戰演算法 系列 第 12

技術 [Day12] 30 天挑戰演算法 - 從已排序的 list 中刪除有重複值的節點

題目來源:Remove Duplicates from Sorted List 問題: 給予一個已排序過的 Linked List, 請試著刪除所有重複值的節點...

鐵人賽 開發技術 DAY 9

技術 [Day09] 30 天挑戰演算法 - 將數字反轉

題目來源:Reverse Integer 問題: 給一個數字,將其反轉 例子: 例如: x = 123, 則回傳 321 例如: x = -123, 則回傳 -...

鐵人賽 開發技術 DAY 8

技術 [Day08] 30 天挑戰演算法 - 判斷二元搜尋樹

題目來源:Valid Binary Search Tree 問題 給一棵樹,判斷它是否是一棵合法的二元搜尋樹 (BST, Binary search tree)...

鐵人賽 開發技術 DAY 7

技術 [Day07] 30天挑戰演算法 - 配對之合

題目來源:Two Sum 問題: 給一個陣列和一個 目標數字,試著從這陣列中找出兩個數字,並且這兩個數字的 和 會等於 目標數字。 此外陣列的 index 從...