Python五種常見的演算法,你都了解么
1、選擇排序
選擇排序是一種簡單直觀的排序演算法。它的原理是這樣:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的後面,以此類推,直到所有元素均排序完畢。演算法實現如下:
2、快速排序
快速排序的運行速度快於選擇排序,它的工作原理是這樣:設要排序的數組是N,首先任意選取一個數據(通常選用數組的第一個數)作為關鍵數據,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。可以使用python用遞歸式的方法來解決這個問題:
3、二分查找
二分查找的輸入是一個有序的列表,如果要查找的元素包含在一個有序列表中,二分查找可以返回其位置。打個比方來說明二分查找的原理:比如我隨便想了個範圍在1~100以內的整數,由你來猜,以最少的次數來猜出這個數字,你每次猜完給出個數字,我會回復大了或小了,第一種方法是你從1開始依次往後猜,那如果我想的數字是100,那麼你就要猜100次;第二種方法是從50開始,如果我說小了,那你就猜75,就這樣依次排除掉一半的剩餘數字,這就是二分查找法。可以看出二分查找法更加快速。對於包含n個元素的有序列表,用簡單查找最多需要n步,而二分查找法則最多只需lon2 n步。下面用python來實現該演算法:
4、廣度優先搜索
廣度優先搜索是一種圖演算法,圖由節點和邊組成,一個節點可能與多個節點連接,這些節點稱為鄰居。廣度優先搜索演算法可以解決兩類問題:第一類是從節點A出發,有沒有前往節點B的路徑;第二類問題是從節點A出發,前往B節點的哪條路徑最短。
5、貪婪演算法
貪婪演算法,又名貪心演算法,對於沒有快速演算法的問題(NP完全問題),就只能選擇近似演算法,貪婪演算法尋找局部最優解,並企圖以這種方式獲得全局最優解,它易於實現、運行速度快,是一種不錯的近似演算法。假如你是個小偷,商店裡有很多箱子,箱子里有各種水果,有些箱子里有3種水果,有些箱子有2種...,你想嘗到所有種類的水果,但你一個人力氣有限,因此你必須盡量搬走最少的箱子,那麼,演算法實現如下:
---------------------
作者:嬌兮心有之
原文:https://blog.csdn.net/qq_40925239/article/details/85636111
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
打開今日頭條,查看更多圖片
※CSS實現點擊事件及實踐
※5款面向Linux的簡單Web瀏覽器
TAG:程序員小新人學習 |