曾幾什麼時候學好數據結構與算法是咱們從事計算機相關工做的基本前提,然而如今不少程序員從事的工做都是在用高級程序設計語言(如Java)開發業務代碼,長此以往,對於數據結構和算法就變得有些陌生了,因爲終年累月的碼磚的緣故,致使咱們都快沒有這方面的意識了,雖然這種論斷對於一些平時特別注重學習和思考的人來講不太適用,但的確是有這樣的一個現象。程序員
而在要出去面試找工做的時候,才發現這些基礎都快忘光光了,因此可能就「杯具」了!實際上,對於數據結構和算法相關的知識點的學習,是程序員必須修煉的一門內功,而要掌握得比較牢靠除了須要在寫代碼的時候時刻保持這方面的意識外,也須要平常的訓練,換一個目前比較流行的詞叫刻意練習。面試
這就像打乒乓球同樣,雖然你們都會打,可是要打得好,打出水準就得常常訓練。而學習算法的過程也是這樣,由於大部分人的腦容量有限,對於學過的算法知識雖然以前理解過,可是由於時間的關係和算法自己就是比較抽象的一種知識,因此容易忘記。那麼有沒有什麼好的練習工具呢?算法
在這裏給你們推薦一個練習數據結構和算法編程的網站:編程
以本文將要講述的二分查找算法爲例,在給你們的代碼示例中做者就在這個網站上使用Java/Go/Python三種語言進行了實現,如數據結構和算法