如何充滿熱情地學習 - 以資料結構為例
前言最近不管是工作、還是自己額外的學習,都感受到擁有熱情是很重要的,有熱情,才更想投入心力,把技能磨練到頂尖,也在過程中獲得更多樂趣! 最近大家都喊著要學程式設計,因為有超級爆炸多的未來應用,例如虛擬實境、擴增實境、人工智慧、機器人、區塊鍊等等東西都需要大量的程式設計師。 但是,要把程式寫好,良好的資料結構與演算法基礎是不可少,網路上也已經有好多好多的學習資源了。可是,在透過這些資源學習的時候,常常感受到的都是「題目好難」、「好多東西要
前言最近不管是工作、還是自己額外的學習,都感受到擁有熱情是很重要的,有熱情,才更想投入心力,把技能磨練到頂尖,也在過程中獲得更多樂趣! 最近大家都喊著要學程式設計,因為有超級爆炸多的未來應用,例如虛擬實境、擴增實境、人工智慧、機器人、區塊鍊等等東西都需要大量的程式設計師。 但是,要把程式寫好,良好的資料結構與演算法基礎是不可少,網路上也已經有好多好多的學習資源了。可是,在透過這些資源學習的時候,常常感受到的都是「題目好難」、「好多東西要
前言在之前我們學習了一種不重複元素的集合,本文我們繼續討論另外一種不重複值的資料結構:字典(Dictionary)和雜湊表(Hash Table)。在集合中我們主要關心的是值本身 { 值(value): 值(value)},在字典(Dictionary)和雜湊表(Hash Table)則是有 { 鍵(key): 值(value)} 之間的 mapping 關係。 什麼是字典(Dictionary
什麼是集合(Set)?集合是一個源自於數學理論中擁有不同元素的集合: N = {0, 1, 2, 3, 4, 5, 6, …} 空集合:{} 其特性在於它是由一組無序且不重複的項目組成。你也可以想成是一個沒有重複元素和無順序的陣列。在這篇文章我們會介紹如何實作集合資料結構並使用 交集、聯集、差集等集合操作方式。 集合初體驗事實上,在 ES6 中就有原生的 Set,在這邊我們試著使用 JavaScript 物件模仿 ES6 的
什麼是佇列(Queue)?佇列(Queue)是一種先進先出(First In First Out, FIFO)的有序串列(Ordered List),與堆疊(Stack)後進先出(Last In First Out, LIFO)不同的是佇列(Queue)的新增和刪除元素是發生在不同端,新增元素在尾部、移除元素在頂部,最新加入的元素會從尾部排入。在一般生活中比較常見的例子是電影院排隊買票、小七便利商店排隊付款(當然不能有人想插隊啦),在
什麼是陣列(Array)?陣列可以說是程式語言中暫時儲存資料的櫃子,幾乎所有的程式語言都具備陣列這個廣泛運用的資料結構,但值得注意的是一般程式語言中陣列只能儲存同樣型別的值,但在 JavaScript 則可以儲存不同型別的值(但我們還是盡量避免)。 下面是陣列的簡單使用情境,當今天我們想儲存整個班級的學生姓名時,我們不可能使用一個個變數去一個個儲存,這時候陣列的功能就派上用場了: 1234567const student1 =
前言在 CS 江湖上曾傳言:程式設計 = 資料結構 + 演算法。在一般的大專院校裡,資料結構(Data Structure)與演算法(Algorithm)幾乎都是電腦科學(Computer Science)和資訊相關科系的基礎必修課,在這些課堂中多半是使用 C/C++ 或是 Java 進行教學,許多初學學生也因為對於這些語言的掌握度不夠,反而迷失在資料結構和演算法的世界裡,然而本系列文章將透過 JavaScript 去學習一