iT邦幫忙

資料結構與演算法相關文章
共有 316 則文章
鐵人賽 自我挑戰組 DAY 13
一個月的演算法挑戰 系列 第 13

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

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

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

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

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

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

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

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

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

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

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

鐵人賽 自我挑戰組 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

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

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

鐵人賽 自我挑戰組 DAY 6

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

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

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

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

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

鐵人賽 自我挑戰組 DAY 5

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

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

鐵人賽 自我挑戰組 DAY 4

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

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

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

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

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

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

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

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

鐵人賽 自我挑戰組 DAY 3

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

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

鐵人賽 自我挑戰組 DAY 2

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

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

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

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

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

鐵人賽 自我挑戰組 DAY 1

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

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

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

技術 Day01:時間複雜度

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

技術 資料結構與演算法[3] - List和SortedList與BinarySearch

比對List和SortedList 比對容器 List SortedList 比較方法 資料放入容器的時間 演算法處理時間 開始測試 演算法 - Bin...

技術 【紅黑樹十講・參】紅黑樹新增・四大規則介紹・完整圖解步驟

Youtube連結:https://bit.ly/3inN3zI 紅黑樹的新增觀念,涵蓋「旋轉」與「顏色」兩樣重要操作,總計共有四種新增處理狀況,並且彼此...

技術 Sorting Algorithms

排序演算法在程式中是非常重要的以下會先來介紹三個基本的排序演算法 Bubble sort Insertion sort Selection sort Bub...

技術 Array of arrays

Recursion + Loop let array = [[["c",["a"]],[["bc"]...

技術 Recursion

接下來我們要來學習很重要的遞迴,接下來讓我們了解吧 函式呼叫自己 使用到Stack Fibonacci function Recursion(n){...

技術 Coding Practice

本章主要學習如何透過演算法學習訓練思考 Palindrome BigO(n) 檢查是否reverse也是相同的EX: anna = anna function...

技術 Average pair

兩數相加平均數 必須是被排序好的 應用在找尋有哪些配對符合所要的數值接下來讓我們實作吧!!! 迴圈版BigO(n^2) let array1 = [-11...

技術 InterSection

InterSection(集合) 以下會來實作怎麼找尋兩個array的集合 先使用兩個迴圈來實作BigO(n^2) let array1 = [1,2,3,4...

技術 Binary Search

二元搜尋BigO(log n) 相較於線性搜尋時間複雜度實在好太多 必須是被排序好的 由於每次對半砍,所以為log n 點我看GIF let array1...

技術 Linear Search

線性搜尋BigO(n) 本文為閱讀Wilson Ren老師的Udemy課程的課後心得接下來讓我們先來看一下GIF檔示例 點我看GIF function Lin...

技術 BigO

##使用BigO來衡量程式碼的時間複雜度(time complexity)是很重要的一件事情,接下來讓我們來學習吧以下為閱讀[https://pjchender...