01什麼是算法?
我們來看百度百科對算法的解釋:算法是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令。
我們可以理解算法就是計算機面對一個問題的解決方法。
比如,我們要求計算機幫我們將輸入的100個整數從小到大進行排序,那麼排序的具體方法,就是算法。
舉個例子,比如我們現在有這麼一列數據 [ 5,7,8,3,1],現在需要程序幫我們進行從小到大進行排序。
應該怎麼辦呢?
在程序中,我們已經知道數據可以進行加減乘除運算,還可以進行邏輯比較
對於這五個數據,我們可以先讓五個數據進行比較,比較最後得到1是最小的,然後將1和首位的5進行交換,現在的結果是[ 1,7,8,3,5],接下來,讓1後面的四個數據,執行同樣的操作,比較得到3是最小的,將3與7交換位置,就得到[1,3,8,7,5]。
然後在後3位中繼續同樣操作,得到5是最小的,就與8進行交換得到 [1,3,5,7,8],最後剩下的兩個進行比較,發現7是最小的,位置不用交換,完成排序
這種方法就是選擇排序,我們剛剛具體地模擬了計算機是如何一步步將一列數據從小到大排好序的
02那麼,程序如何寫呢?
排序的過程如下
當然還有其他很多的排序方法,就是不同的解題方案
03
冒泡排序
比如說冒泡排序,這如它的名字一樣,將小的數浮上來,大的數沉下去,還是拿剛剛的數據舉例:[ 5,7,8,3,1]
首先,5和7進行比較,7更大,那麼不用交換位置,讓7和下一位比較,7和8,8更大還是不用交換,接下來8和3比較,8更大,8和3進行交換,得到[5,7,3,8,1]
然後8和1比較,交換位置,得到[5,7,3,1,8]
接下來,對前面 5,7,3,1 四個數據進行同樣操作,經過操作之後得到,[5,3,1,7,8]
然後,對【5,3,1】再進行一輪,得到 [3,1,5,7,8]
最後對 [3,1] 進行交換得到 [1,3,5,7,8]
具體的排序過程如下
現在你發現了兩種方法都可以解決同一個問題,但兩者的方法不一樣,執行效率也不一樣,這就設計到時間複雜度和空間複雜度,在這次課中我們就展開講。
這次課主要了解算法是什麼
04回顧總結
1、嘗試自己寫一個選擇算法
2、寫一個冒泡算法
當你有了一些基礎之後,想要通過書籍系統提高,可以參考這本流暢的python教程:
歡迎關注我,一起輕鬆學習python編程
如果對你有幫助,可以隨手點讚和收藏,這樣可以讓更多人看到!
如果你有問題可以在留言區告訴我或私信給我