欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用python實現(xiàn)冒泡排序算法實例代碼

 更新時間:2019年12月01日 09:20:19   作者:pypypypy  
這篇文章主要給大家介紹了關(guān)于如何利用python實現(xiàn)冒泡排序算法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

冒泡排序

冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重復(fù)地遍歷要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。遍歷數(shù)列的工作是重復(fù)地進行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端。

冒泡排序算法的運作如下:

1、比較相鄰的元素。如果第一個比第二個大(升序),就交換他們兩個。

2、對每一對相鄰元素作同樣的工作,從開始第一對到結(jié)尾的最后一對。這步做完后,最后的元素會是最大的數(shù)。

3、針對所有的元素重復(fù)以上的步驟,除了最后一個。

4、持續(xù)每次對越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。

冒泡排序,一個經(jīng)典的排序算法,因在算法運行中,極值會像水底的氣泡一樣逐漸冒出來,因此而得名。

冒泡排序的過程是比較兩個相鄰元素的大小,然后根據(jù)大小交換位置,這樣從列表左端開始冒泡,最后最大值會依次從右端冒出。 

python實現(xiàn)冒泡排序:

def bubble_sort(nums):

 for i in range(len(nums) - 1):

  for j in range(len(nums) - i - 1):

   if nums[j] > nums[j + 1]:

    nums[j], nums[j + 1] = nums[j + 1], nums[j]

 return nums

python實現(xiàn)冒泡排序的核心思想是通過從列表一端迭代循環(huán)元素,再通過一個循環(huán)讓這個元素之后的元素相鄰兩個比較,從而依次將最大值移動到最末端,如下圖示意。

本想放gif圖的,放不上有點問題。

關(guān)于冒泡排序的時間復(fù)雜度,在上面python實現(xiàn)的代碼中時間復(fù)雜度是n的平方,當(dāng)然可以再考慮一下極端的情況:當(dāng)隊列已經(jīng)從小到大排好序或者從大到小排好序,從小到大排好順序時可以只掃描一遍就結(jié)束排序,此時時間復(fù)雜度為O(n),如果是從大到小,那么就需要掃描n-1次,同時需要比較交換n-1次,時間復(fù)雜度為n的平方 。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Python+PyQt5實現(xiàn)開發(fā)Memcached客戶端

    Python+PyQt5實現(xiàn)開發(fā)Memcached客戶端

    這篇文章主要介紹了如何使用Python和PyQt5來制作一個Memcached客戶端,以便我們可以輕松地與Memcached服務(wù)器進行交互,感興趣的小伙伴可以了解一下
    2023-06-06
  • Python 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實例

    Python 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實例

    下面小編就為大家?guī)硪黄狿ython 將RGB圖像轉(zhuǎn)換為Pytho灰度圖像的實例。具有很好的參考價值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Python自動化之批量處理工作簿和工作表

    Python自動化之批量處理工作簿和工作表

    今天給大家整理了如何使用Python實現(xiàn)批量處理工作簿和工作表,文中有非常詳細(xì)的介紹及代碼示例,對小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • Scrapy抓取京東商品、豆瓣電影及代碼分享

    Scrapy抓取京東商品、豆瓣電影及代碼分享

    Scrapy,Python開發(fā)的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測和自動化測試。
    2017-11-11
  • Python辦公自動化之網(wǎng)絡(luò)監(jiān)控和壓縮文件處理

    Python辦公自動化之網(wǎng)絡(luò)監(jiān)控和壓縮文件處理

    Python辦公?動化是利用Python編程語?來創(chuàng)建腳本和程序,以簡化、加速和?動化?常辦公任務(wù)和工作流程的過程,本文主要介紹了如何進行網(wǎng)絡(luò)監(jiān)控和壓縮文件處理,感興趣的可以了解下
    2023-12-12
  • Python操作MySQL數(shù)據(jù)庫的簡單步驟分享

    Python操作MySQL數(shù)據(jù)庫的簡單步驟分享

    這篇文章主要給大家介紹了關(guān)于Python操作MySQL數(shù)據(jù)庫的簡單步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 聊聊python中的load、loads實現(xiàn)反序列化的問題

    聊聊python中的load、loads實現(xiàn)反序列化的問題

    在python自動化中,我們傳遞一些參數(shù)是需要從文件中讀取過來的,讀取過來的字典并非python對象數(shù)據(jù)類型而是string類型。本文給大家分享python中的load、loads實現(xiàn)反序列化的問題,感興趣的朋友一起看看吧
    2021-10-10
  • 給Python中的MySQLdb模塊添加超時功能的教程

    給Python中的MySQLdb模塊添加超時功能的教程

    這篇文章主要介紹了給Python中的MySQLdb模塊添加超時功能的教程,timeout功能在服務(wù)器的運維當(dāng)中非常有用,需要的朋友可以參考下
    2015-05-05
  • 詳解如何在Python中實現(xiàn)遺傳算法

    詳解如何在Python中實現(xiàn)遺傳算法

    遺傳算法是一種模擬自然進化過程與機制來搜索最優(yōu)解的方法,這篇文章主要為大家介紹了如何在Python中實現(xiàn)遺傳算法,感興趣的小伙伴可以了解一下
    2023-06-06
  • python中的sort方法使用詳解

    python中的sort方法使用詳解

    這篇文章主要介紹了python中的sort方法,需要的朋友可以參考下
    2014-07-07

最新評論