十大排序演算法(氣泡排序,快速排序,插入排序等)
氣泡排序
<1>.比較相鄰的元素。如果第一個比第二個大,就交換它們兩個;
<2>.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數;
<3>.針對所有的元素重複以上的步驟,除了最後一個;
<4>.重複步驟1~3,直到排序完成。
import random def bubbleSort(obj): length = len(obj) for i in range(length): for j in range(length-1-i): if obj[j] > obj[j+1]: obj[j],obj[j+1] = obj[j+1], obj[j] return obj if __name__ == '__main__': obj = [random.randint(i) for i in range(10)] print(obj,bubbleSort(obj))
相關推薦
十大排序演算法(氣泡排序,快速排序,插入排序等)
氣泡排序 <1>.比較相鄰的元素。如果第一個比第二個大,就交換它們兩個; <2>.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數; <3>.針對所有的元素重複以上的步驟,除了最後一個; <4>.
排序演算法(氣泡排序,插入排序,選擇排序)的Java實現
// 氣泡排序 public int[] bubble(int[] a) { for (int i = 0; i < a.length-1; i++) { // 相鄰的兩個數做比較,小的想上冒泡,-1防止陣列下標越界 for (int j
Java資料結構:排序演算法(氣泡排序,選擇排序,插入排序,希爾排序,快速排序,堆排序和合並排序)
public class 氣泡排序 { public static void main(String[] args) { int a[] = { 1, 9, 6, 8, 5, 65, 65, 84, 1, 2, 5, 23, 7, 889 }; for (int i
(排序演算法)linux c語言實現選擇排序演算法(氣泡排序的略微改進版)
快速排序演算法和氣泡排序演算法是差不多的,都是要兩層迴圈,外迴圈是要比較的個數,其實就是元素的個數,內迴圈就是外層那個標記和其他的比較大小, 氣泡排序是相鄰的兩個,兩兩比較,最後交換出一個最大或者最小值, 快速排序是在氣泡排序的基礎上,找出那個最小的或者最大的,但是不是直接交換,
《資料結構與演算法》之排序演算法(氣泡排序、選擇排序)
排序(Sorting) 是計算機程式設計中的一種重要操作,它的功能是將一個數據元素(或記錄)的任意序列,重新排列成一個關鍵字有序的序列。 排序演算法分類: 一、非線性時間比較類排序 1、交換排序(氣泡排序、快速排序) 2、插入排序(簡單插入排序、布林排序) 3、選擇排序(簡單選擇
C語言中常用排序演算法(氣泡排序、選擇排序、插入排序、希爾排序、快速排序、堆排序)實現比較
以下程式在win10 X64位作業系統,使用VS2017執行驗證可行 排序是非常重要且很常用的一種操作,有氣泡排序、選擇排序、插入排序、希爾排序、快速排序、堆排序等多種方法。 例項1 冒泡法排序 1.前言: 陣列中有N個整數,用冒泡法將它們從小到大(或從大到小)排序。冒泡法
JS實現排序演算法(氣泡排序、快速排序)
const a = [21, 3, 242, 3432, 13, 13, 123, 4, 35, 22, 1]; // 氣泡排序 // 核心思想:每次比較相鄰的數,如果它們順序錯誤,就把它們交換過來。如同氣泡一樣往後翻滾。 // 最外層的迴圈,每次至少要讓一個元素歸位。 /
排序演算法(氣泡排序、選擇排序、插入排序、歸併排序、快速排序、希爾排序)
氣泡排序 核心: 相鄰元素兩兩比較,大的往後放。第一次比較完畢以
史上最容易理解的《十大經典演算法(動態圖展示)》
十大經典排序演算法 部分內容引用自:https://www.cnblogs.com/onepixel/articles/7674659.html 感謝作者貢獻,如需刪除請聯絡本人! 0、排序演算法說明 0.1 排序分類 非線性時間比較類排序:通過比較來
(排序演算法)linux c語言實現簡化版本的插入排序演算法(二分插入)
二分插入演算法是在已經排序好的序列裡插入一個元素,是穩定的演算法,關鍵詞是折中。 比如說我要在12345678910裡插入一個3,那麼我先看看中間的數比3大,還是比3小,要是比3大,我就去後一半,如果是比3小,我就去前一半,現在進入某個一半後,再做如此操作,最後將其他的元
資料探勘十大經典演算法(詳解)
資料探勘十大經典演算法 一、 C4.5 C4.5演算法是機器學習演算法中的一種分類決策樹演算法,其核心演算法是ID3 演算法. C4.5演算法繼承了ID3演算
機器學習之十大經典演算法(八) PageRank演算法
PageRank演算法 (一) PageRank演算法簡介: Google的創始人之一LarryPage於1998年提出了PageRank,並應用在Google搜尋引擎的檢索結果排序上,該技術也是Google早期的核心技術之一。 L
排序演算法(選擇、希爾、二分插入、冒泡、直接插入、快速排序)
public class BinarySearch1 { public static void main(String args[]) { int array[]={49,38,65,97,76,13,27}; binarySort(arra
輕鬆看懂機器學習十大常用演算法(附例項)
來源:資料與演算法之美本文共2000字,建議閱讀8分鐘。本文僅用圖解,為你介紹十大常用演算法及其
十大程式設計演算法(1)
演算法一:快速排序演算法快速排序是由東尼·霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他Ο(n log n) 演算法更快,因為它的內部(inner
Verilog十大基本功2(testbench的設計 檔案讀取和寫入操作 原始碼)
需求說明:Verilog設計基礎 內容 :testbench的設計 讀取檔案 寫入檔案 來自 :時間的詩 十大基本功之 testbench 1. 激勵的產生 對於 testbench 而言,埠應當和被測試的 module 一一對應。 埠分
HBase的java操作,最新API。(查詢指定行、列、插入資料等)
– 關於HBase環境搭建和HBase的原理架構,請見筆者相關部落格。 1.HBase對java有著較優秀的支援,本文將介紹如何使用java操作Hbase。 首先是pom依賴: <dependency> <groupId>org
買什麼資料結構與演算法,這裡有:動態圖解十大經典排序演算法(含JAVA程式碼實現)
上篇的動圖資料結構反響不錯,這次來個動圖排序演算法大全。資料結構與演算法,齊了。 幾張動態圖捋清Java常用資料結構及其設計原理 本文將採取動態圖+文字描述+正確的java程式碼實現來講解以下十大排序演算法: 氣泡排序 選擇排序 插入排序 希爾排序
十大經典排序演算法(動圖演示,收藏好文)
js和java兩版 目錄 十大經典排序演算法(動圖演示) 0.1 演算法分類 十種常見排序演算法可以分為兩大類: 非線性時間比較類排序:通過比較來決定元素間的相對次序,由於其時間複雜度不能突破O(nlogn),因此
十大經典排序演算法(動圖演示) 十大經典排序演算法(動圖演示)
十大經典排序演算法(動圖演示) 0、演算法概述 0.1 演算法分類 十種常見排序演算法可以分為兩大類: 非線性時間比較類排序:通過比較來決定元素間的相對次序,由於其時間複雜度不能突破O(nlogn),因此稱為非線性時間比較類排序。 線性