• 當前位置:首頁 > IT技術 > 編程語言 > 正文

    ??帶你輕松走進算法的世界!算法圖解:第一章:算法入門
    2022-04-29 14:01:01


    ??帶你輕松走進算法的世界!算法圖解:第一章:算法入門_python


    Hello,大家好我叫是Dream呀,一個有趣的Python博主,小白一枚,多多關照 ?

    入門須知:這片樂園從不缺乏天才,努力才是你的最終入場券!

    最后,愿我們都能在看不到的地方閃閃發光,一起加油進步

    “一萬次悲傷,依然會有Dream,我一直在最溫暖的地方等你”,唱的就是我!哈哈哈~



    第一章算法簡介:

    1.1引言

    算法是一組完成任務的指令,任何代碼片段都可以看做是一個算法!

    1.1.1性能方面

    本專欄介紹的每種算法都很可能有使用你喜歡的語言編寫實現,你將學習到不同算法的優缺點,進而選擇更好地算法!

    1.1.2問題解決及技巧

    利用這些廣泛的算法,你將會學習到更具體的AI算法,數據庫算法。

    1.2 二分查找

    二分查找是一種算法,其輸入必須是一個有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否則返回null。

    1.2.1簡單查找

    依次查找n次,又叫做傻找

    1.2.2更佳的查找方式

    每次從中間開始查找,就是我們所說的二分查找,這樣我們的時間復雜度就是logn,而不是簡單查找中的n

    ??帶你輕松走進算法的世界!算法圖解:第一章:算法入門_python_02

    def binary_search(list,item):
    low=0
    high=len(list)-1
    while low<=high:
    mid=(low+high)//2
    guess=list[mid]
    if guess==item:
    return mid
    if guess>item:
    high=mid-1
    else:
    low=mid+1
    return None
    print(binary_search([1,3,5,7],1))

    1.2.3運行時間

    如果有100個元素,簡單查找需要找100次;而如果有40個億的元素,其更是要查找40億次,先不說時間問題,估計你的電腦跑出來這個程序也離退休不遠了~

    換而言之,這種時間被稱為線性時間。

    二分查找則不同,100個元素只需要7次;40億個元素,只需要驚人的32次!

    這樣的運行時間被稱為對數時間。

    ??帶你輕松走進算法的世界!算法圖解:第一章:算法入門_運行時間_03

    1.3大O表示法

    大O表示法是一種特殊的表示法,指出了算法有多快。

    1.3.1算法的運行時間以不同的速度增加

    例如:為檢查長度為的的列表,簡單查找需要查找n次,運行時間為O(n),二分查找的運行時間為O(log n)。這指出了算法需要執行的操作數。之所以被稱為大O表示法,是因為操作數前面有個O。這聽起來像笑話,但事實確實如此。

    1.3.2 理解不同的大O運算時間

    大O表示法指出了最糟糕的情況下的運行時間。

    1.3.3一些常見的大O運行時間

    1. O(log n):對數時間,這樣的算法包括二分查找
    2. O(n):線性時間,這樣的算法包括簡單查找
    3. O(n*log n):這樣的算法包括快速排序
    4. O(n**2):這樣的算法包括選擇排序
    5. O(n?。哼@樣的算法包括旅行商問題的解決方案

    ??帶你輕松走進算法的世界!算法圖解:第一章:算法入門_運行時間_04

    注意:

    1.算法的速度并非指時間,而是操作數的增速

    2.談論算法的速度時,我們說的是隨著輸入的增加,其運行時間將以什么樣的速度增加

    3.算法的運行時間用大O表示法表示

    4.O(logn)比O(n)快,當需要搜索的元素越多時,前者比后者快得多。

    1.3.4旅行商

    一位商人要去往五個城市,規劃出最優路線。這需要我們先找出所有路線再作比對,也就是5!,這個方法很費時間,但目前還沒有找到更快的算法。??帶你輕松走進算法的世界!算法圖解:第一章:算法入門_python_05

    1.4小結

    1.二分查找的速度比簡單查找快得多

    2.O(log n)比O(n)快,需要搜索的元素越多,前者比后者就更快得多!

    3.算法運行時間不是以秒為單位

    4.算法運行時間是從其增速的角度度量的

    5.算法運行時間用大O表示法表示

    最后的福利

    最后一點小福利帶給大家:如果想快速上手python的小伙伴們,這個詳細整理PPT可以迅速幫助大家打牢python基礎,需要的小伙伴們可以下載一下Python入門基礎教程全套+小白速成+學不會來找我!

    好啦,這就是今天要給大家分享的全部內容了

    如果你喜歡的話,就不要吝惜你的一鍵三連了~??帶你輕松走進算法的世界!算法圖解:第一章:算法入門_數據結構_06



    本文摘自 :https://blog.51cto.com/u

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码