程序員為什么要學數據結構?
程序員的作品就是有數據結構和算法做基礎構建出來的。
作為程序員,可能有JAVA開發工程師,PHP工程師,C語言工程之分,但是你仔細回想,上學期間可并沒有專門的必修課去講述如何學習JAVA,PHP,而數據機構和算法課卻是必修且學分非常高的課程。
我們足以從國家為計算機相關學生制定的這份學習計劃中看出,數據結構與算法作為基礎能夠支撐上層不同種類的編程語言,即任你上層語言或者領域如何變化,只要根基打牢了,就能夠構建出一個堅實的項目。不管是平臺開發,人工智能,還是圖像分析處理,都離不開數據結構。
數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。如果把程序看做一個人,那么數據結構就是人的骨架,如何設計人的骨架能夠使用最少的元素,但是達到最結實的效果,就是數據結構的工作。
程序員工作不是在學校里寫作業,只要輸入輸出對了就能得分。程序員的工作除了要保證輸入輸出正確,還要保證使用最少的資源和最快的時間。如上面所說,一個精心設計的數據結構能夠提高項目的執行效率,從而產出更好的產品。
舉個最簡單的例子,我們都知道經典的數據結構隊列是先進先出,堆棧是先進后出。這二者在不同場景各有其需要,比如要滿足一個排隊的需求,那就需要用隊列;如果要自己用程序寫一個計算器,那就需要用堆棧;假設堆棧這種數據結構從未存在過,你需要寫一個計算器,那你只能用隊列來實現,不僅需要額外的輔助隊列浪費了空間資源,還需要不停的在輔助隊列之間傳遞數據,浪費了時間資源。這就是選擇錯誤的數據結構帶來的麻煩。
因此,對數據結構有一個良好掌握的人在編程中通常能夠保證代碼邏輯的質量,從而進一步保證產品的效率。
以上是我的淺見,歡迎大家在下方評論區與我溝通交流。
我是蘇蘇思量,來自BAT的Java開發工程師,每日分享科技類見聞,歡迎關注我,與我共同進步。