摘要:冒泡算法算法思想每次比較兩個(gè)相鄰的元素如果他們的順序錯(cuò)誤就把他們交換位置比如有五個(gè)數(shù)從大到小排序?qū)ο噜彽膬晌贿M(jìn)行比較第一趟第一次比較第二次比較第三次比較第四次比較經(jīng)過第一趟比較后五個(gè)數(shù)中最小的數(shù)已經(jīng)在最后面了接下來只比較前四個(gè)數(shù)依次類推第
冒泡算法:
- 算法思想: 每次比較兩個(gè)相鄰的元素, 如果他們的順序錯(cuò)誤就把他們交換位置
比如有五個(gè)數(shù): 12, 35, 99, 18, 76, 從大到小排序, 對(duì)相鄰的兩位進(jìn)行比較
第一趟:
第一次比較: 35, 12, 99, 18, 76
第二次比較: 35, 99, 12, 18, 76
第三次比較: 35, 99, 18, 12, 76
第四次比較: 35, 99, 18, 76, 12
經(jīng)過第一趟比較后, 五個(gè)數(shù)中最小的數(shù)已經(jīng)在最后面了, 接下來只比較前四個(gè)數(shù), 依次類推
第二趟
99, 35, 76, 18, 12
第三趟
99, 76, 35, 18, 12
第四趟
99, 76, 35, 18, 12
比較完成
冒泡排序原理: 每一趟只能將一個(gè)數(shù)歸位, 如果有n個(gè)數(shù)進(jìn)行排序,只需將n-1個(gè)數(shù)歸位, 也就是說要進(jìn)行n-1趟操作(已經(jīng)歸位的數(shù)不用再比較)
代碼如下:
def bubble(numbers): for i in range(len(numbers)-1): for j in range(len(numbers)-i-1): if numbers[j] > numbers[j+1]: numbers[j], numbers[j+1] = numbers[j+1], numbers[j] return numbers l = [2, 3, 44, 6, 2, 21, 3, 5, 7, 9] print(bubble(l))
回頭看看基礎(chǔ),數(shù)據(jù)結(jié)構(gòu)和算法還是很重要的,,,,,,,,,,,,,,,,,,,,,摸摸自己的頭頂,,,一陣嘆息!??!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42037.html
摘要:歸并排序歸并排序,或,是創(chuàng)建在歸并操作上的一種有效的排序算法,效率為大符號(hào)。以此類推,直到所有元素均排序完畢。與快速排序一樣都由托尼霍爾提出的,因而也被稱為霍爾選擇算法。 showImg(https://segmentfault.com/img/remote/1460000019096360);編譯:周素云、蔣寶尚 學(xué)會(huì)了Python基礎(chǔ)知識(shí),想進(jìn)階一下,那就來點(diǎn)算法吧!畢竟編程語言只...
摘要:冒泡排序冒泡排序英語是一種簡單的排序算法。冒泡排序算法的運(yùn)作如下比較相鄰的元素。冒泡排序動(dòng)態(tài)圖代碼實(shí)現(xiàn)我們來逐行分析下。這里的減是為了不在遍歷之前排序好的元素。記錄交換的次數(shù),但代表沒有交換,序列已經(jīng)有序。 冒泡排序 冒泡排序(英語:Bubble Sort)是一種簡單的排序算法。它重復(fù)地遍歷要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。遍歷數(shù)列的工作是重復(fù)地進(jìn)行直...
摘要:本篇主要實(shí)現(xiàn)九八大排序算法,分別是冒泡排序,插入排序,選擇排序,希爾排序,歸并排序,快速排序,堆排序計(jì)數(shù)排序。希爾排序是非穩(wěn)定排序算法。歸并排序算法依賴歸并操作。但是,計(jì)數(shù)排序可以用在基數(shù)排序算法中,能夠更有效的排序數(shù)據(jù)范圍很大的數(shù)組。 本篇主要實(shí)現(xiàn)九(八)大排序算法,分別是冒泡排序,插入排序,選擇排序,希爾排序,歸并排序,快速排序,堆排序,計(jì)數(shù)排序。希望大家回顧知識(shí)的時(shí)候也能從我的這...
摘要:排序算法總結(jié)排序算法平均時(shí)間復(fù)雜度冒泡排序選擇排序插入排序希爾排序快速排序歸并排序堆排序基數(shù)排序一冒泡排序基本思想兩個(gè)數(shù)比較大小,較大的數(shù)下沉,較小的數(shù)冒起來。 排序算法總結(jié) 排序算法 平均時(shí)間復(fù)雜度 冒泡排序O(n2) 選擇排序O(n2) 插入排序O(n2) 希爾排序O(n1.5) 快速排序O(N*logN) 歸并排序O(N*logN) 堆排序O(N*logN) 基數(shù)排序O(d(n+...
摘要:冒泡排序冒泡排序也是一種簡單直觀的排序算法。但希爾排序是非穩(wěn)定排序算法??焖倥判蛴质且环N分而治之思想在排序算法上的典型應(yīng)用。本質(zhì)上來看,快速排序應(yīng)該算是在冒泡排序基礎(chǔ)上的遞歸分治法。 冒泡排序 冒泡排序(Bubble Sort)也是一種簡單直觀的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就...
閱讀 1278·2021-11-17 09:33
閱讀 1747·2021-09-09 11:53
閱讀 3217·2021-09-04 16:45
閱讀 1394·2021-08-17 10:12
閱讀 2391·2019-08-30 15:55
閱讀 1782·2019-08-30 15:53
閱讀 2411·2019-08-30 15:52
閱讀 2562·2019-08-29 18:41