iT邦幫忙

演算法相關文章
共有 302 則文章
鐵人賽 Modern Web DAY 6

技術 Trick 5: 旋轉角度的靠近演算法

昨天我們講到靠近演算法,應用這個演算法,可以讓一個數值以一個速率持續接近目標值,套用在畫面上的元件,就能將原本死硬的畫面變成滑順的視覺效果。 那麼我們能用同樣的...

鐵人賽 自我挑戰組 DAY 2

技術 【Day 02】認識演算法 Algorithm ( 使用 JavaScript )

一、什麼是演算法 ( Algorithm ) ? 演算法是一組 step by step 用來解決問題、完成任務的指令,它的定義: 在有限時間內 在有限步驟內...

鐵人賽 自我挑戰組 DAY 9

技術 【第九天 - Quick Sort 題目分析】

先簡單回顧一下,今天預計分析的題目: 題目敘述: 題目連結:https://leetcode.com/problems/sort-an-array/ 會...

技術 【圖解演算法教學】還在用古老的二元搜尋法?是時候跟上「Hash Search」的車尾燈了!

Youtube連結:https://bit.ly/2Uv2sBf 在我們還沒學資料結構前,通常都用Linear Search找東西。之後,我們學了二元樹...

技術 【圖解演算法教學】二元樹的一生,聽說有些淒涼!?

Youtube連結:https://bit.ly/3mTlgpQ 軟體世界中「樹」長得跟現實生活中的「樹」不一樣,這是學過演算法的人彼此間不言而喻的默契。...

鐵人賽 自我挑戰組 DAY 4

技術 【第四天 - Queue 介紹】

Q1. Queue是什麼? 與 Stack 一樣,是一種資料結構的概念,假設有一個容器是裝馬克杯的盒子 (從這個盒子下方拿東西,有點類似飲水機旁邊會放的下落式...

鐵人賽 Software Development DAY 3

技術 Day 3. Asymptotic Notations-漸進式符號

昨天我們提到了資料結構跟演算法的定義及他們之間的關係,我們也可以知道,對於同一個問題,我們可以使用很多不同種類的演算法來解決他,但要怎麼判斷哪種演算法比較好呢?...

鐵人賽 Software Development DAY 14

技術 Day 14 - 連線的加密 (二)

加密連線的方式有很多種,像是使用 HTTP 協定可以透過 HTTPS 之類來加密,運氣不錯的事 SRP 算是容易理解而他的應用也在 OpenSSL 和一些雲端服...

鐵人賽 自我挑戰組 DAY 11

技術 【第十一天 - Two-pointer 題目分析】

先簡單回顧一下,今天預計分析兩個題目: Remove Duplicates from Sorted Array Two Sum II - Inpu...

鐵人賽 自我挑戰組 DAY 1

技術 Day 01:什麼是演算法?

演算法這個名字給人一種充滿艱深、繁複計算的感覺,不像我們生活中可以或需要學會的東西。 但其實演算法在生活中無所不在。 廣義的演算法用白話來說,就是完成任務的一套...

鐵人賽 自我挑戰組 DAY 3

技術 Day 03:如何分析演算法?

上一回講到兩種搜尋演算法,一種是一個一個找,一種則是每次尋找都可以去掉一半的選項,好像有一種是明顯比較快的做法,可是我們要怎麼表達這樣的差異呢? 執行時間 一般...

技術 Day 33 極致改良 - Shell Sort

Shell Sort 是 Insertion Sort 的改良版,加入了間距 (Gap) 的概念將資料分成小區塊,將整組資料分組,每區塊用 Insertion...

鐵人賽 自我挑戰組 DAY 4

技術 選擇排序法(Selection Sort)

選擇排序法,主要精神在迴圈找尋選擇最小值,然後將最小值與第一個值交換。 假設有一陣列[7,5,1,20,8],並假設最小值是第一個數值(7),第一個數值就與...

鐵人賽 自我挑戰組 DAY 5

技術 【第五天 - Queue 題目分析】

先簡單回顧一下,今天預計分析的題目: 如何利用兩個 stack 完成 Queue 的概念? 邏輯很簡單,如下: 先準備兩個 stack 的盒子 (...

鐵人賽 自我挑戰組 DAY 26

技術 【第二十六天 - Dijkstra 介紹】

Q1. Dijkstra 是什麼? 一種利用 Dynamic Programming ,與 Floyd-Warshall 一樣,是求 Graph 中兩點之間...

鐵人賽 自我挑戰組 DAY 7

技術 【Day 07】Sorting:Insertion Sort 插入排序法 ( 用 JavaScript 學演算法 )

插入排序法是將陣列中未排序的元素,逐一與排序好的資料作比較。它的時間複雜度是 (O(n^2))。 一、步驟觀察 標記第一個元素作為已排序的部分 遍歷未排...

鐵人賽 Software Development DAY 7

技術 Day 6 BO5-3 - Sliding Window

Sliding Window 跟上篇 Multiple Pointers 類似,定義兩個指標,一個是 start,一個是 end。 像是: start...

鐵人賽 自我挑戰組 DAY 9

技術 【Day 09】Sorting:Bubble Sort 氣泡排序法 ( 用 JavaScript 學演算法 )

氣泡排序法是,從第一個元素開始,和相鄰數字比大小,若有需要就交換位置。因此也可稱為交換排序法。它的時間複雜度是 O(n^2)。 一、步驟觀察 遍歷未排序...

鐵人賽 自我挑戰組 DAY 10

技術 Day 10:快速排序(quicksort)

看完了分治法與遞迴,再來看這樣的方法如何解決排序問題。 快速排序是一種利用分治法的演算法,比前面提到的排序方法都要快速許多,有些程式語言的函式庫也直接包含了快速...

鐵人賽 Modern Web DAY 4

技術 Trick 3: 火焰傷害的頻率管理

身為冒險者的你,如果不小心闖入遊戲中的森林火海因而引火上身,那麼就會持續受到燒傷的傷害。不過另人好奇的是,即使受到四面八方無數的火焰轟擊,被燒傷的人物仍然只固定...

鐵人賽 影片教學 DAY 1

技術 [Day01] 什麼是二元搜尋法

#278 - First Bad Version 連結: https://leetcode.com/problems/first-bad-version/...

鐵人賽 自我挑戰組 DAY 29

技術 Day 29:K-近鄰演算法(k-nearest neighbors)

K-近鄰演算法是一個以已知的資料作為輸入,為資料進行分類的演算法,在日常生活中有非常多應用。 舉例來說,假設我們想要幫一些不知道是章魚還是烏賊的動物分類,我們依...

鐵人賽 影片教學 DAY 24

技術 輕鬆搞懂演算法:快速排序(quick sort)

輕鬆搞懂演算法:快速排序(quick sort)另外這一系列影片也漸漸接近尾聲了如果方便的話請幫我做個課程滿意度調查這樣紫楓以後才可以做出更優質的教學影片 程...

鐵人賽 Software Development DAY 24

技術 Day 23 極速解題 - Tree Sort

Tree Sort 簡而言之就是使用 Tree 結構來排序資料,建議先看資料結構篇章中的 Binary Search Tree 和 Tree Traversal...

鐵人賽 自我挑戰組 DAY 20

技術 【第二十天 - Graph 介紹】

Q1. Graph 是什麼 Graph 定義:一個 graph 由 數個點( vertex )與數個邊( edge ) 組成 圖形的表示有兩種方法:相鄰矩陣...

鐵人賽 Modern Web DAY 18

技術 Trick 17: 綿延不絕的隨機地形是咋做出來的?

不管你喜不喜歡沙盒遊戲,都無法否認我的世界(Minecraft)、泰拉瑞亞(Terraria)這些屹立了十多年仍然立於頂端的遊戲類型有多麼吸引玩家。 類似的沙盒...

鐵人賽 自我挑戰組 DAY 7

技術 Day 07:泡沫排序(bubble sort)

如果一個陣列中的任兩個元素是有排序的,是不是代表整個陣列就是排序好的?這就是泡沫排序的想法。 如果我們想將一列數字由小到大排好,用泡沫排序的步驟是: 兩個相鄰...

鐵人賽 自我挑戰組 DAY 8

技術 【Day 08】Sorting:Selection Sort 選擇排序法 ( 用 JavaScript 學演算法 )

選擇排序法的概念是,將陣列分為兩個部分,每次掃描未排序的部分時,從數列中拿出最小的數,丟到另一邊,最後就會得到一個完成排序的陣列。它的時間複雜度是 O(n^2...

鐵人賽 自我挑戰組 DAY 7

技術 【第七天 - Bubble Sort 題目分析】

先簡單回顧一下,今天預計分析的題目: 如何利用 Bubble sort 進行排序? 我們要將下圖六個數字進行從小到大的排序 我們現...

鐵人賽 自我挑戰組 DAY 14
30天演算法解題 系列 第 14

技術 Day 14:run-length encoding

problem 輸入為一個不為空的字串,回傳該字串經過變動長度編碼 (run-length encoding) 的結果。 sample input:string...