iT邦幫忙

資料結構相關文章
共有 62 則文章
鐵人賽 Software Development DAY 24

技術 [資料結構] 雜湊 (Hash)

很多人以為雜湊就是加密,但雜湊不是加密! 雜湊不是加密! 雜湊不是加密! 雜湊是因為他的特性很適合來做加密的運算,但真的不等同於加密! 雜湊 (Hash) 雜...

技術 2018年入門python,推薦這樣幾本好書!

藉此問題,奉上初學者最好的Python學習書單! 編程入門 1、《「笨辦法學」Python3》 本書是基於Python 3.6版本編寫的。是一本Python入門...

鐵人賽 Software Development DAY 12

技術 [資料結構] 二元樹走訪 (Binary Tree Traversal)

在介紹完了二元樹,今天就來談談二元樹讀取和儲存的方式。二元樹裏的資料其實不一定是依照大小或從左到右排序的,可能依照輸出的方式不同,結果也會不盡相同。 目前理論上...

鐵人賽 Software Development DAY 6

技術 [資料結構] 陣列 (Array) & 串列 (Linked List)

好啦,討論完幾個演算法後,還是得面對最重要的核心,資料結構。 (頓時有種醜媳婦見公婆的概念 該來的還是要來~) 其實資料在程式語言中有很多種型態,像是 int...

鐵人賽 Software Development DAY 14

技術 [資料結構] 堆積 (Heap)

堆積 (Heap),是一種特殊的完全二元樹,而堆疊不一樣,是完全不同的概念。 有分兩種,一種是最小堆積,另一種是最大堆積。 最小堆積 如下圖,完全二元樹所有的父...

鐵人賽 Software Development DAY 13

技術 [資料結構] 二元搜尋樹 (Binary Search Tree)

講了二元樹的走訪,接下來要進入搜尋了,尋找森林深處的密寶~ 先來說說 二元搜尋樹 (Binary Search Tree),又稱 有序二元樹 或 排序二元樹。如...

鐵人賽 Software Development DAY 11

技術 [資料結構] 二元樹 (Binary Tree)

接續昨天的樹。二元樹 (Binary Tree) 的特點就是每個節點最多有兩個兒子,或者是說每個節點最多有兩棵子樹。 二元樹中還有兩種特殊的種類: 滿二元樹...

鐵人賽 Software Development DAY 5

技術 Day5-陣列(Array)和鏈結串列(Linked List)的比較

在學習完陣列和鏈結串列之後呢,我們來把它們做統整比較吧!不過首先要先介紹一個網站,裡面整理了各式資料結構的時間複雜度並整理成表格。網站連結如下: https:/...

技術 [完結] 總整理 + 後記

資料結構 Day 6 - 陣列 (Array) & 串列 (Linked List) Day 7 - 佇列 (Queue) Day 8 -...

鐵人賽 Software Development DAY 22

技術 [資料結構] 圖的深度優先走訪 (Depth-first Search )

昨天介紹了各式各樣的圖,今天就來討論圖的搜尋。 之前有提過深度優先搜尋,是用程式碼遞迴的概念,一層一層的我裡面找出所有可能。但之前的資料是線性的,那如果是圖的話...

鐵人賽 Software Development DAY 10

技術 [資料結構] 樹 (Tree)

分得出來兩張圖片的差別嗎? 第一張,我們稱為 樹 (Tree) ,第二張是所謂的迴路,屬於一般的無相圖。 樹有幾個特性: 不包含迴路。 一棵樹中的任意兩個...

鐵人賽 Software Development DAY 7

技術 [資料結構] 佇列 (Queue)

經過昨天介紹的 串列 (Linked List),今天來講一個串列的延伸,佇列 (Queue)。佇列一樣有著串列的特性,每一筆元素本身同時包含著下一筆元素的位置...

鐵人賽 Software Development DAY 21

技術 [資料結構] 圖 (Graph)

圖 (Graph),在資料結構上指的是點和點之間的關聯的東西,並不是數學定義上的兩點成一線,三點成一面的那種圖。一張圖由數條邊(Edge)和數個點(Vertex...

鐵人賽 Software Development DAY 8

技術 [資料結構] 堆疊 (Stack)

堆疊 (Stack) 的特性就是 先進後出 (First In Last Out, FILO)。舉個例子,比如說有一個長深桶子,我們依序放入大小剛好的 1 到...

鐵人賽 Software Development DAY 9

技術 [資料結構] 堆疊 (Stack) - 2

河內塔 (Tower of Hanoi) 其實也是個古老的題目,最常被用來解釋什麼叫做堆疊。 河內塔最早發明這個問題的人是法國數學家愛德華·盧卡斯。 傳說越南...

鐵人賽 Software Development DAY 23

技術 [資料結構] 圖的廣度優先走訪 (Breadth-first Search)

昨天有深度,今天有廣度,人生難過沒法度~ (好難笑...呵呵) 今天就用這張圖來開啟主題。 這是一個無向圖,比較接近現實中的地圖。今天我們要從 1 號城市搭飛...

技術 Week11 - 讓遞迴的Stack永遠不會爆炸的「尾遞迴」真的有那麼神奇嗎 - 尾遞迴篇 [高智能方程式系列]

本文章同時發佈於: Medium iT邦幫忙 大家好,最近因為有一位朋友提到尾遞迴,說這個優化技術「可以讓遞迴跑個一百萬次都沒問題」,驚呆的我,就花...

技術 資料結構(二)用鏈結串列儲存陣列資料

這是一個很特別儲存方式,要是沒有讀資料結構,我也不會認識它。基礎語法裡會有教Array,但鏈結串列Liked List就沒有了。 【大綱】 鏈結串列組成 陣列...

技術 資料結構(四)鏈結串列四種型態

用圖片說明鏈結串列四種型態,講解「環狀與非環狀」、「單向與雙向」的好處。 【大綱】 鏈結串列型態 環狀與非環狀 單向與雙向 總整理 【鏈結串列型態】 前面資...

鐵人賽 Software Development DAY 24

技術 Day24-動態規劃-0/1背包問題

不知不覺開賽也來到第24天了,在前面的23天介紹了資料結構/排序搜尋演算法之後,剩下的7天每天都會用來解一道題目,那麼今天要探討的是一個非常經典的 Knapsa...

技術 資料結構(一)變數、陣列、鏈結串列差別在哪?

最近在學資料結構,在忘記以前寫文來加深印象,目標在今年看完這本書。 【大綱】 前言 變數 陣列 鏈結串列 閒談 【前言】 將記憶體看作是一家餐廳, 客人離場...

鐵人賽 Software Development DAY 17

技術 [守] 你需要的是資料結構, 演算法與物件導向概念的加持

之前有說過我們團隊每週會刷leetcode,幾乎1000題內都是在考資料結構+演算法,資料結構像是你身上裝備的武器,而演算法則是你真正的武功。而物件導向/設計模...

鐵人賽 Software Development DAY 2

技術 Day2-陣列操作常用的20個函式

這次的文章可以說是JavaScript中,陣列相關操作函式大全了,總共有20個函式,就請準備筆記本好好記錄下吧! 1. 合併陣列 - concat() 其實字串...

技術 資料結構(三)C語言要先宣告陣列大小

Python不用事先宣告陣列大小,但C語言中就要先宣告才能使用,這讓我產生疑惑。 【大綱】 前言 為什麼c語言不能直接增加 總結 【前言】 有多少人用餐入座...

鐵人賽 Software Development DAY 1

技術 Day1-來介紹一下資料結構和演算法吧!

在開始用JavaScript實作各種資料結構前,總要先了解什麼是資料結構吧,才會知道之後學習的鏈結串列/堆疊/佇列是什麼東西啊~那廢話不多說,我們就開始吧! 資...

鐵人賽 Software Development DAY 4

技術 Day4-來了解鏈結串列並實作它吧!

Linked List 鏈結串列可以說是一種常見的資料結構,它長的如下圖的樣子,每個節點存了一個資料和一個指標 pointer ,指向下一個節點,最後一個節點則...

鐵人賽 Software Development DAY 10

技術 Day10-來介紹遞迴(Recursion)吧!

遞迴分為直接遞迴和間接遞迴兩種: 直接遞迴: 直接在函式內再次呼叫本身函式 function fn1() { fn1(); } 間接遞迴: 函式呼叫另...

技術 資料結構(五)鏈結串列常見運算-1

鏈結串列修改運算跟陣列比較起來,麻煩了許多,首先要做的就是移動工作節點。 【大綱】 移動工作節點 修改運算 鏈結串列vs陣列 閒談 【移動工作節點】 工作節...

鐵人賽 Software Development DAY 27

技術 Day27-解題-Caesar Cipher 凱薩密碼

今天要解的題目是凱薩密碼,凱薩密碼也稱為凱撒加密,它會將一串明文的所有字母順序經過一定數字的偏移後轉為密文。 例如有一串字母 ABCD,分別是英文26個字母中的...

鐵人賽 AI & Data DAY 27
人工智慧 vs.工人智慧 系列 第 27

技術 Day 27:第三招 資料面改善

上一篇想辦法去改善分類演算法但似乎改善幅度不高,正所謂山不轉路轉,如果分類器改善不了,那何不來改善一下資料面的問題呢? 針對資料的部分我們會用以下三種方式重新處...