怎樣才能學好程式?
個人認為,乙個好的程式設計師必須具備兩方便的素質: 一是知識,二是邏輯思維。
知識需要不斷積累,可能知識就是乙個小小的問題,你知道了,就能方便的運用上,不知道的話,便可能花費時間查閱資料。
相對於知識,邏輯更顯重要。
知識可以積累,而邏輯主要看程式設計師的分析問題、解決問題的能力,這種能力不僅僅要求積累,更要求懂得分析、推演與歸納,考驗的邏輯思維。
邏輯的乙個重要分支便是演算法,在某些程式中,演算法即是靈魂。
複雜問題大多是由乙個個簡單問題構成的,演算法也如是,複雜演算法的也是由基礎演算法衍生而成。
基礎是關鍵,只有基礎演算法掌握了,設計具體演算法時才能更加得心應手。
在大學時,我們便接觸了各種演算法,可惜,當時只是泛泛的聽老師粗略的講解,並沒有轉換為自己的東西。
大學畢業,並不代表我們已經學會了大學中的知識。而僅僅代表著,我們曾學過那些知識,至於有沒有轉換為自己的知識,那就只有自己清楚了。
知識能夠改變命運,並不等於 上了大學就能改變命運。
而且,我認為,有了知識也不一定能夠改變命運, 只有: 懂得如何運用這些知識,才有可能改變命運。
本著,學以致用的觀點,重新回顧一下大學時學過的演算法,以期把握其本質,真正掌握,轉換為屬於自己的東西。
因此,特在閒暇之時,梳理一下那些基礎演算法。
java演算法系列
棧的概念 棧是一種特殊的線性表,堆疊的資料元素以及資料元素之間的關係和線性表是完全一樣的。差別是線性表是在任意位置進行插入和刪除操作,棧是只允許在固定的一端進行插入和刪除,棧的插入和刪除只允許在棧頂,棧的插入和刪除通常稱為進棧和出棧。資料集合 每個資料元素的資料型別可以是任意的型別 操作的集合 進棧...
演算法系列 Move Zeroes
given an array nums,write a function to move all 0 s to the end of it while maintaining the relative order of the non zero elements.for example,given ...
演算法系列 Missing Number
given an array containing n distinct numbers taken from 0,1,2,n,find the one that is missing from the array.for example,given nums 0,1,3 return 2.note...