- 秒懂算法:用常識解讀數據結構與算法
- (美)杰伊·溫格羅
- 521字
- 2022-10-08 17:10:03
1.1 數據結構
先來聊聊數據。
數據是一個寬泛的術語,可以指代所有類型的信息。最基本的數據就是數和字符串。在簡單而又經典的“Hello World!”程序中,字符串"Hello World!"
就是數據。事實上,即便最復雜的數據通常也是由數和字符串組成的。
數據結構指的是數據的組合方式。到后面你就會知道,同樣的數據也可以有多種組合方式。
來看如下代碼。
x = "Hello! "
y = "How are you "
z = "today?"
print x + y + z
這個簡單的程序會處理3條數據。它把3個字符串整合輸出到一條信息中。如果要描述這個程序中數據的組合方式,我們會說“有3個獨立的字符串,每個字符串都存儲在一個變量中”。
但是,同樣的數據也可以存儲在數組中。
array = ["Hello! ", "How are you ", "today?"]
print array[0] + array[1] + array[2]
后面你會學到,數據結構不僅僅是數據的組合方式,還會極大地影響代碼運行速度。你組合數據的方式可能會讓程序的運行速度提高或者降低幾個數量級。如果要寫一個處理大量數據的程序,或是開發一個允許上千人同時訪問的網頁應用,那么你選擇的數據結構可能直接決定軟件會不會因為負載太高而崩潰。
當你深刻理解數據結構對軟件性能可能造成的影響后,就能寫出快速而優雅的代碼了。這也能大幅提升你作為軟件工程師的能力。
本章會先分析兩種數據結構:數組和集合。雖然它們看起來差不多,但是你會學到分析兩者性能的方法。
推薦閱讀
- 大學計算機基礎實驗教程
- 深入淺出Java虛擬機:JVM原理與實戰
- Mastering Swift 2
- 小學生C++創意編程(視頻教學版)
- HTML5秘籍(第2版)
- Learning Modular Java Programming
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)
- C語言程序設計實訓教程與水平考試指導
- Deep Learning for Natural Language Processing
- Java核心編程
- Jakarta EE Cookbook
- jQuery Essentials
- Learning Puppet
- Slick2D Game Development
- Getting Started with Backbone Marionette