iT邦幫忙

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

技術 Day26-解題-Armstrong number 阿姆斯壯數

今天要來解的題目是阿姆斯壯數,阿姆斯壯數是什麼呢?假定給定一個 n 位數的整數,該整數的每個位數乘上 n 次方的總和剛好為該整數,則該數字就為阿姆斯壯數。 ex...

鐵人賽 Software Development DAY 25

技術 Day25-解題-Perfect Number 完美數

今天要來解的題目是完美數,完美數是什麼呢?如果一個正整數的除了自己本身的其他因數總和剛好等於該正整數,則該數字稱為完美數。 因此這次的題目內容就是輸入一個正整數...

鐵人賽 Software Development DAY 24

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

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

鐵人賽 Software Development DAY 23

技術 Day23-搜尋法系列(二)-二分搜尋法

這次要介紹的是二分搜尋法(Binary Search),使用此排序法的話,要搜尋的資料列必須經過排序。運作原理就是將要尋找的值和資料列中間的值進行比較。 如果尋...

鐵人賽 Software Development DAY 22

技術 Day22-搜尋法系列(一)-循序搜尋法

今天要介紹的是循序搜尋法(Sequential Search),也可稱為線性搜尋法(Linear Search),運作原理相當簡單,就是在資料列一個一個值的和目...

鐵人賽 Software Development DAY 21

技術 Day21-排序法系列(五)-快速排序法

今天要介紹的是快速排序法 Quick Sort,它普遍被認為最快的排序演算法,並且採用分治法(Divide and Conquer)。運作方式是在資料列設定一個...

鐵人賽 Software Development DAY 20

技術 Day20-排序法系列(四)-合併排序法

今天要介紹的是合併排序法 Merge Sort,合併排序法採用分治法(Divide and Conquer),它將資料列不斷分割成兩個資料列,這兩個資料列也不斷...

鐵人賽 Software Development DAY 19

技術 Day19-排序法系列(三)-插入排序法

今天要介紹的是插入排序法 Insertion Sort,在排序小型資料時,此演算法效能比氣泡排序和選擇排序效能更好。 插入排序法運作方式為逐一將資料值加入已排序...

鐵人賽 Software Development DAY 18

技術 Day18-排序法系列(二)-選擇排序法

選擇排序法 Selection Sort會在未排序的資料列中尋找資料值最小(大)的元素,和原本資料列的第一個元素交換位置,再從剩下未排序的資料列中尋找資料值最小...

鐵人賽 Software Development DAY 17

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

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

鐵人賽 Software Development DAY 17

技術 Day17-排序法系列(一)-氣泡排序法

氣泡排序法(Bubble Sort)是最容易理解和實作的排序演算法,但其時間複雜度在排序法當中算是最差的一個。主要觀念是從頭開始逐一比較相鄰兩筆資料,將較大值往...

鐵人賽 Software Development DAY 16

技術 Day16-演算法篇開始!介紹五個常用的演算法

在結束介紹資料結構的部分後,我們將會進入學習一些和演算法相關的知識,今天就先來認識一下"五個"常見的演算法吧! Brute force 暴力...

鐵人賽 Software Development DAY 15

技術 Day15-資料結構總結與一些免費學習資源

在過去的14天我們介紹了許多種類的資料結構,並且大多都有搭配一個例題去作應用,不過寫到這邊也到一個段落了,在此想要強調的是資料結構和演算法在資工資管等資訊相關科...

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

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

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

鐵人賽 Software Development DAY 14

技術 Day14-來了解Map並實作它吧!

在JavaScript ES6 的規範中,新增了 Map 這種資料結構,每組資料都有對應的 key 值(索引值)與 value 值(資料值),而且索引值可以是各...

鐵人賽 Software Development DAY 13

技術 Day13-來了解 Set 並實作它吧!

集合是一種資料順序沒有意義而且其資料不會有重複值的一種資料結構,在 JavaScript ES6 的規範中,我們可以透過 new Set() 來建立一個 set...

鐵人賽 Software Development DAY 12

技術 Day12-資料結構-樹(Tree)的一些操作方法

今天將會把昨天實作的樹,加上幾個函式: sum(): 所有節點值的總和 contain(): 查詢是否樹裡有指定要找的值 size(): 計算樹裡共有幾個節點...

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

技術 Day 25:第一招 改進資訊辨識成果

這邊要講怎麼改善資料的辨識。 什麼叫做資料的辨識? 前面一直提到說所有的資料是靠人工標記後當作之後使用的資料集,那在標記的過程中常常遇到一些狀況是包括哪些呢?以...

鐵人賽 Software Development DAY 11

技術 Day11-來介紹資料結構-樹(Tree)吧!

今天要介紹的是樹,大致的樣子如下圖,其中樹的每個元素都稱為節點,樹最上方的節點稱為根節點,而節點之間上層節點為下層節點的父節點,下層節點為上層節點的子節點,如果...

鐵人賽 Software Development DAY 10

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

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

鐵人賽 Software Development DAY 9

技術 Day9-使用佇列實作質數篩選

這次我們要用昨天學到的佇列搭配一個叫做埃拉托斯特尼篩法的東西去找出一定範圍的質數。 埃拉托斯特尼篩法的維基百科介紹: https://zh.wikipedia....

鐵人賽 Software Development DAY 8

技術 Day8-來了解佇列並實作它吧!

佇列其資料結構用圖片來說明大概如下: 資料以一列的方式儲存每個資料,而且刪除節點時會從最前面也是最早加入佇列的資料開始刪除,新增節點從佇列尾巴開始刪除。此為佇...

鐵人賽 Software Development DAY 7

技術 Day7-利用堆疊解決"平衡括號"問題

這次我們要用昨天學到的堆疊來解決以下問題: 括號分為以下三種: () [] {} 假如一個字串的括號都有與開口(包括: ( [ { )對應的閉合符號(包括: )...

鐵人賽 Software Development DAY 6

技術 Day6-來了解堆疊並實作它吧!

今天要來介紹的資料結構是堆疊。 我們可以用一疊書來做比喻堆疊,最一開始被放在桌上的書會被壓在最下面,而最後被放在書堆的書本則在書堆最上面。而當要拿書離開時,不能...

鐵人賽 Software Development DAY 5

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

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

鐵人賽 Software Development DAY 4

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

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

鐵人賽 Software Development DAY 3

技術 Day3-二維陣列與數地雷應用

這次要來介紹的是二維陣列,二維陣列就是陣列裡面的元素也是陣列的一種資料結構 舉個例子來說: const group = [ ['172', '156', '...

鐵人賽 Software Development DAY 2

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

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

鐵人賽 Software Development DAY 1

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

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

技術 資料結構(十二)鏈結實作-5再學一次指標

在輸出二個以上變數記憶體位址,發線先宣告的變數會排在後面,百思不得其解又重翻一次教學。 【大綱】 指標二種宣告法 指標說明 總結 【指標二種宣告法】 剛開始...