iT邦幫忙

資料結構與演算法相關文章
共有 268 則文章
鐵人賽 Software Development DAY 1

技術 【在廚房想30天的演算法】Day 01 演算法好吃嗎~

【在廚房想30天的演算法】Day 01 演算法好吃嗎~ Aloha!我是少女人妻Uerica!哈哈哈,過了一年又開始跟老公沒話題了,加上疫情關係天天處一起,我...

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

技術 Day16:圖形搜尋-深度優先搜尋(Depth-First Search)

使用字典建立圖形資料結構 字典鍵值對應串列如下,配合圖表更容易理解。 G[0]:[1,2,3] G[1]:[0,2,3,4] G[2]:[0,1] G[3]:...

鐵人賽 自我挑戰組 DAY 16

技術 Day16:[搜尋演算法]Binary search - 二分搜尋法

利用將資料切一半的方式來做搜尋,舉例來說,如果要從數字1–100猜終極密碼,如果採用線性搜尋法就是一個一個問?是1嗎?是2嗎?…依序猜下去,很不幸的數字剛好是...

鐵人賽 Software Development DAY 1

技術 Day 1:開始前的準備

緣起 各位好~我是一個軟體工程師,追求每年都要有不一樣的進步,今年追求的是把自己的基底在打的更穩,之前也沒機會來認真刷題,刷LeetCode就是在練習對演算法及...

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

技術 Day15:圖形搜尋-廣度優先搜尋(breadth-first search)

Tree and Graph 在開始今天的主題之前,要先來淺談Tree跟Graph。什麼是Tree? Tree Tree 是一種特定的Graph,沒有Loop...

鐵人賽 自我挑戰組 DAY 15

技術 Day15:[搜尋演算法]Linear Search - 線性搜尋法

線性搜尋法可以說是最容易理解的搜尋演算法了,相信大家都有過類似的經驗,在圖書館裡想在書架上找一本書"湯姆歷險記",假如書本都是未經排序的,...

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

技術 Day14:堆積排序(Heap Sort)

堆積(Heap) 堆積,是一種樹狀結構,用於實現「優先佇列(Priority queue)」。Priority queue是資料結構的一種,可以自由追加數據,讀...

鐵人賽 自我挑戰組 DAY 14

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

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

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

技術 Day13:快速排序(Quick Sort)

淺談Divide And Conquer Day12有提到Divide and conquer(分治法),簡單的說,將問題分解為小問題後,依次解決,最後再將解決...

鐵人賽 自我挑戰組 DAY 13

技術 Day13:[解題技巧]Two pointers -  雙指針

雙指針算是一個解題蠻常用的小技巧,雙指針指的是用兩個指針對整個資料做遍歷,而雙指針又依照移動的方向性,分為對撞指針(反方向)和快慢指針(同方向)。 對撞指針 兩...

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

技術 Day12:合併排序(Merge Sort)

Divide and conquer(分而治之法) Divide and conquer 顧名思義是一種將問題分解為小問題再依次解決,最後再將解決問題合併的方法...

鐵人賽 自我挑戰組 DAY 12

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

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

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

技術 Day11:插入排序法(Insertion Sort)

談談插入排序(Insertion Sort) 在開始今天之前,先來看看影片(約2分鐘)吧! https://www.youtube.com/watch?v=O...

鐵人賽 自我挑戰組 DAY 11

技術 Day11:[資料結構]Binary Tree - 二元樹

想必大家在刷leetcode時候,刷到特定的題目的時候都曾經看過這樣的圖片,這就是Binary tree,但在認識Binary tree之前,讓我們先來認識t...

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

技術 Day10:選擇排序(Selection Sort)

選擇排序(Select Sort) 選擇排序是重複進行「將數列中最小值,與左邊的值對調」,一直保持由小到大的數列。 選擇排序法使用線性搜尋(Linear Sea...

鐵人賽 自我挑戰組 DAY 10

技術 Day10: [資料結構] Graph - 圖

圖是由節點(node)和邊(edge)所組成的,一個節點可能與多個節點相連著,而這些相連的節點又被稱作相鄰節點(neighbor),圖在生活中應用的例子相當的...

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

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

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

鐵人賽 自我挑戰組 DAY 9

技術 Day9:[資料結構] Linked-List - 鏈結串列

Linked List為抽象的資料結構,概念有點像三國的連環船,一艘船(節點)連結著下一艘船(節點),每個節點除了擁有自己的值之外也記錄自己的下一個節點是指向...

鐵人賽 自我挑戰組 DAY 8

技術 Day8: [資料結構]Hash Table - 雜湊表

在理解hash table之前,先來理解hash(雜湊)吧! 雜湊的特色有以下幾點: 無論原本的內容長短,經過雜湊演算法處理過的值都會是固定長度 經由雜湊處理...

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

技術 Day07:資料結構 - 雜湊表(Hash Table)

雜湊表,我需要那個酷東西 在線性資料結構中,若要找一個資料,花費的時間複雜度為O(n),或是可以選擇節省時間,但是耗費記憶體容量。若是兩者都不想選,那就需要Ha...

鐵人賽 自我挑戰組 DAY 7

技術 Day7: [資料結構]Stack —堆疊和Queue— 佇列

Stack Stack是一種資料結構,遵循著後進先出的原則,最晚放入堆疊的資料會被最先取出(LIFO Last-In-First-Out),最早放入堆疊的資料...

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

技術 Day06:資料結構 - 佇列(queue)

前言 今天聊到了佇列(queue)這種資料結構,佇列和Day5所提到的堆疊常放在一起看,他們的操作方式類似,但特性稍微有一點點的不同。 佇(ㄓㄨˋ)列(que...

鐵人賽 自我挑戰組 DAY 6

技術 Day6: [資料結構] -  Set

Set是JavaScript ES6中新增的資料結構,Set與陣列很類似,允許任何型態的值,跟陣列不同的是所有的值都是唯一的,不允許有重複的值,因此很適合用來去...

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

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

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

鐵人賽 自我挑戰組 DAY 5

技術 Day5: [資料結構] - Map

Map是JavaScript ES6中新增的資料結構 ,類似於object ,不過Map還是跟object有著以下的差異: Map的key是可以是原始型別、...

鐵人賽 自我挑戰組 DAY 4

技術 Day4: [資料結構] Array —  陣列

Array是資料結構的一種,概念就像置物櫃一樣,每個櫃子都可以存放資料並且都有自己的編號稱為索引值index,Array為連續的記憶體位置,因此讀取資料非常快...

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

技術 Day03:資料結構 - 列表(List)

什麼是資料結構? 前一天有提到空間複雜度(Space Complexity),簡單的複習一下,空間複雜度指的是記憶體的使用效率。今天開始談到的資料結構,是可以有...

鐵人賽 自我挑戰組 DAY 3

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

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

鐵人賽 自我挑戰組 DAY 2

技術 Day2: 什麼是演算法?— Algorithms

圖片來源:*https://www.dcard.tw/f/funny/p/225385728大家小時候應該有看過這個時代的眼淚 ——— 電話簿,厚厚的一本跟字典...

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

技術 Day01:時間複雜度

剛開始,我想說點什麼 看過市面上許多解釋演算法的資料,有些書搭配圖片,有些影片淺顯易懂,為了挑戰自己以及將演算法了解透測,開始了這次的鐵人賽。 開始的時候,想要...