iT邦幫忙

資料結構與演算法相關文章
共有 302 則文章
鐵人賽 自我挑戰組 DAY 21

技術 Day21:[排序演算法]Heap Sort - 堆積排序法

heap sort的原理是採用max heap這種資料結構來做排序,max heap是一種binary tree,每個節點都會比自己的子節點還大,因此根節點會是...

鐵人賽 自我挑戰組 DAY 26
一個月的演算法挑戰 系列 第 26

技術 Day26:河內塔(Tower of Hanoi)

前言 終於結束了安全性演算法的部分,有興趣的人可以進一步學習密碼學,筆者想推薦一個課程: Udemy:數論與密碼學 (Python, JavaScript) 課...

鐵人賽 Software Development DAY 9
舌尖上的演算法 系列 第 9

技術 Day9 -- Brute Force - DFS & BFS

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 應該有人跟我一樣真心覺得Brute Force其實看起來也沒什麼,就都是很簡...

鐵人賽 Software Development DAY 21
舌尖上的演算法 系列 第 21

技術 Day21 -- Time and Space Tradeoff - Hashing

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 昨天介紹Distribution Sort的時候提到了Map/Diction...

鐵人賽 自我挑戰組 DAY 5
一個月的演算法挑戰 系列 第 5

技術 Day05:資料結構 - 堆疊(Stack)

聊聊堆疊(Stack) 堆疊是一種後進先出(Last In First Out)(LIFO)的資料結構,換句話說,堆疊就是將數據排成一列,由下往上堆放文件,只能...

鐵人賽 自我挑戰組 DAY 25
一個月的演算法挑戰 系列 第 25

技術 Day25:安全性和演算法-訊息鑑別碼(Message Authentication Code)

訊息鑑別碼(Message Authentication Code) 訊息鑑別碼(Message Authentication Code,MAC),能夠實現「身...

鐵人賽 自我挑戰組 DAY 28

技術 Day28:八皇后問題- 8 Queens Puzzle

八皇后問題可以說是一道相當經典的演算法題目,以西洋棋為背景,如何在一個8x8的棋盤上擺放八個皇后的棋子,讓任何一個皇后無法吃掉其中一個皇后,也是就是任何一個皇...

鐵人賽 Software Development DAY 11

技術 [One Punch 一拳搞定前後端面試] DAY-11 - 費氏數列

費氏數列(Fibonacci numbers) 還記得達文西密碼裡面,羅浮宮館長死前留下的密碼嗎? 其中關鍵的線索就是費氏數列! 費氏數列,又稱斐波那契數列。意...

鐵人賽 Software Development DAY 23
舌尖上的演算法 系列 第 23

技術 Day23 -- Dynamic Programming - Edit Distance

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 有些時候就是有一些無聊的問題想要解決,才會發展出一些簡單的演算法,然後才會進...

鐵人賽 自我挑戰組 DAY 1

技術 Day1: 開始學習演算法和資料結構的契機

近期面試掀起了一波考演算法的風氣,就好像回到大學指考那樣,老師說這題會考一定要記起來,因此掀起了一股leetcode刷題的風潮,甚麼經典考題都要寫過一遍,剛開始...

鐵人賽 Software Development DAY 19
舌尖上的演算法 系列 第 19

技術 Day19 -- Transform and Conquer - 2-3 Trees

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 當在設計一個演算法的時候,倘若使用到了Tree這種資料結構,絕大部分的情況下...

鐵人賽 自我挑戰組 DAY 12

技術 Day12:[資料結構]Binary Tree -  Traversal

Traversal翻譯成中文就是遍歷的意思,如果要遍歷tree的每個節點的話,會有兩種方式,Breadth-First Tree Traversal和Dept...

鐵人賽 Software Development DAY 10
舌尖上的演算法 系列 第 10

技術 Day10 -- Decrease and Conquer - Insertion Sort

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 第六天到第九天,我們都是在介紹屬於Brute Force的演算法,若要複習的...

鐵人賽 自我挑戰組 DAY 3

技術 Day3: Big O — 時間複雜度與空間複雜度

每一種題目可能有數種的解法,那我們應該怎麼評估每種解法的優劣呢?以前的我應該會回答,當然是越簡短的寫法越好呀! 不過,寫過leetcode之後,會發現有時候很...

鐵人賽 自我挑戰組 DAY 9
一個月的演算法挑戰 系列 第 9

技術 Day09:氣泡排序(Bubble Sort)

何謂「排序(Sort)」? 排序是指一組資料中,將資料以「由大到小」或「由小到大」的方式重新排列。常見的排序演算法有下列幾種: 氣泡排序法(Bubble So...

技術 【最完整!演算法學習路線圖】 入門|介紹|教學|LeetCode|資料結構

Youtube連結:https://bit.ly/2L88JSm 這次我們將精確定位出,在整個演算法學習中,我們所站立的位置;了解資料結構與演算法的定義後...

鐵人賽 Software Development DAY 16
舌尖上的演算法 系列 第 16

技術 Day16 -- Divide and Conquer - Quick Sort

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 昨天介紹了第一種Divide and Conquer的演算法(Merge S...

鐵人賽 自我挑戰組 DAY 27

技術 Day27:Backtracking -回溯法

回溯法是暴力破解法的一種,在列出各種可能的組合時,如果遇到不符合條件的就不再繼續向下查找,而是回到上層繼續尋找其他可能,聽起來有點抽象,可以想像有很多條岔路可...

鐵人賽 Software Development DAY 8
舌尖上的演算法 系列 第 8

技術 Day8 -- Brute Force - Knapsack

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 接連兩天分別介紹了Selection Sort和Bubble Sort兩種排...

鐵人賽 Software Development DAY 15
舌尖上的演算法 系列 第 15

技術 Day15 -- Divide and Conquer - Merge Sort

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 一連五天,我們介紹了Decrease and Conquer,今天和明天我們...

鐵人賽 自我挑戰組 DAY 29
一個月的演算法挑戰 系列 第 29

技術 Day29:輾轉相除法(Euclidean algorithm)

輾轉相除法(Euclidean algorithm) 輾轉相除法是求兩數的最大公因數(greatest common divisor,GCD)的演算法,也被稱為...

鐵人賽 Software Development DAY 5
舌尖上的演算法 系列 第 5

技術 Day5 -- 線性資料結構(Linear Data Structures)

本系列文章同步分享於個人Blog → Informistry-HankLee 前言 第四天我們說明了什麼是抽象資料型別(Abstract Data Type,...

鐵人賽 自我挑戰組 DAY 25

技術 Day25:Dynamic Programming(DP) - 動態規劃(上)

在認識動態規劃之前先來理解Divide and Conquer(分治法)吧!Divide and Conquer是一種演算法,執行的步驟如下 Divide:先...

技術 【圖解演算法教學】一次搞懂「資料結構」與「演算法」到底是什麼?

Youtube連結:https://bit.ly/35x3dih 這次我們將精確定位出,在整個演算法學習中,我們所站立的位置;了解資料結構與演算法的定義...

鐵人賽 自我挑戰組 DAY 22
一個月的演算法挑戰 系列 第 22

技術 Day22:安全性和演算法-公開金鑰密碼系統(Public-key Cryptosystem)

前言 前一天有提到共用金鑰密碼系統(Shared-key CryptoSystem),又稱為「對稱密鑰演算法」(Symmetric-key algorithm)...

鐵人賽 自我挑戰組 DAY 14

技術 Day14:[解題技巧]Recursive - 遞迴

簡單來說就是函式自己呼叫自己的狀況,遞迴由兩部分組成 Recursive Case(遞迴情況) - 當函式呼叫自己本身的情況 Base Case(基本狀況) ...

鐵人賽 Software Development DAY 13
舌尖上的演算法 系列 第 13

技術 Day13 -- Decrease and Conquer - Binary Search Tree(上)

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 第十二天我們介紹了Binary Search,而Binary Search在...

鐵人賽 Software Development DAY 17
舌尖上的演算法 系列 第 17

技術 Day17 -- Transform and Conquer - AVL Tree(上)

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 目前為止已經介紹了三種類別的演算法,每一種演算法都有其有趣的地方,今天我們要...

鐵人賽 Software Development DAY 7
舌尖上的演算法 系列 第 7

技術 Day7 -- Brute Force - Bubble Sort

本系列文章同步分享於個人Blog → InformisTry-HankLee 前言 第六天我們終於開始上主菜了,第一個演算法Brute Force中的Selec...

鐵人賽 Software Development DAY 1

技術 零、美術女孩遇見工程師男孩

星光熠熠,女孩與男孩躺在草地上。女孩一手牽著男孩的手,另一手指向蒼穹。「欸!你說那幾個星星連起來像是什麼呀?」「恩...我想應該像是一棵紅黑樹!」女孩捏了男孩...