iT邦幫忙

鐵人檔案

2021 iThome 鐵人賽
回列表
Software Development

資料結構與演算法,使用JavaScript與Python 系列

本身為前端工程師,因此常使用JavaScript,也因為工作環境的關係,增加了對Python的使用。許多面試會考到資料結構與演算法,而在練習刷leetcode時,也發現許多題目也要應用它們,所以這次想回歸基本面扎根,對於程式邏輯與思路才能有良好的成長。

鐵人鍊成 | 共 35 篇文章 | 95 人訂閱 訂閱系列文 RSS系列文
DAY 21

【Day21】[演算法]-排序Sort & 氣泡排序法Bubble Sort

排序(Sorting) 排序(Sorting)在電腦領域中是非常普遍且重要工作,即是將一群不規格的資料按照某個規格來重新排列,讓排序過的資料容易閱讀、利於統計整...

2021-10-02 ‧ 由 科科 分享
DAY 22

【Day22】[演算法]-選擇排序法Selection Sort

選擇排序法(Selection Sort),原理是反覆從未排序數列中找出最小值,將它與左邊的數做交換。可以有兩種方式排序,一為由大到小排序時,將最小值放到末端;...

2021-10-03 ‧ 由 科科 分享
DAY 23

【Day23】[演算法]-插入排序法Insertion Sort

插入排序法(Insertion Sort),原理是逐一將原始資料加入已排序好資料中,並逐一與已排序好的資料作比較,找到對的位置插入。例如:已有2筆排序好資料,將...

2021-10-04 ‧ 由 科科 分享
DAY 24

【Day24】[演算法]-希爾排序法Shell Sort

希爾排序法(Shell Sort)是插入排序(Insertion Sort)的改良版。可減少插入排序的資料搬移次數,加入了間距(Gap)的概念將資料分成多個小區...

2021-10-05 ‧ 由 科科 分享
DAY 25

【Day25】[演算法]-合併排序法Merge Sort

合併排序法(Merge Sort)原理是會先將原始資料分割成兩個資料列,接著再將兩個資料繼續分割成兩個資料列,依此類推,直到無法再分割,也就是每組都只剩下一筆資...

2021-10-06 ‧ 由 科科 分享
DAY 26

【Day26】[演算法]-快速排序法Quick Sort

快速排序法(Quick Sort)又稱分割交換排序法,是目前公認效率極佳的演算法,使用了分治法(Divide and Conquer)的概念。原理是先從原始資料...

2021-10-07 ‧ 由 科科 分享
DAY 27

【Day27】[演算法]-堆積排序法 Heap Sort

堆積排序法(Heap Sort)原理是利用「堆積」的資料結構為基礎來完成排序。 堆積的介紹可以參考此篇。 操作流程(最大堆積為例): 將陣列轉換最大堆積(...

2021-10-08 ‧ 由 科科 分享
DAY 28

【Day28】[演算法]-桶排序法Bucket Sort

桶排序法(Bucket Sort),與前面幾篇的排序法不一樣,前面都是經由兩兩互相比較而成的排序,稱為比較排序法,而桶排序是非比較排序,屬於「分配性」的排序。原...

2021-10-09 ‧ 由 科科 分享
DAY 29

【Day29】[演算法]-基數排序法Radix Sort

基數排序法(Radix Sort),與前篇的桶排序都是非比較排序,也屬於「分配性」的排序方式,原理依據鍵值排序的方向又分為兩種: LSD(Least Sig...

2021-10-10 ‧ 由 科科 分享
DAY 30

【Day30】[演算法]-線性搜尋法Linear Search

搜尋(Search) 就是從一群資料中找出符合某些條件的資料,當資料量非常龐大時,如何在短時間內有效率地找到所要的資料,因此,搜尋演算法就變得相當重要。 線性...

2021-10-11 ‧ 由 科科 分享