八大排序算法的python實現(三)冒泡排序
代碼:
#coding:utf-8 #author:徐蔔靈 #交換排序.冒泡排序 L = [1, 3, 2, 32, 5, 4] def Bubble_sort(L): for i in range(len(L)): for j in range(i+1,len(L)): if L[i]>L[j]: # temp = L[j] # L[j] = L[i] # L[i] = temp L[i], L[j] = L[j], L[i]#交換順序 print L Bubble_sort(L)
冒泡排序應該是最熟悉的排序算法了吧,所以基本上寫這個算法沒遇到什麽問題。值得註意的是,python中交換兩個數的順序可以通過這種方式實現,這種小tip可以學習一下。
時間復雜度O(n ** 2)
空間復雜讀O (1)
穩定排序算法。
說明:穩定排序大概有四種:直接選擇排序、冒泡排序、歸並排序、基數排序。
後面兩種接下來仍有具體解釋。
八大排序算法的python實現(三)冒泡排序
相關推薦
八大排序算法的python實現(三)冒泡排序
解釋 實現 兩個 blog python odin int 通過 順序 代碼: #coding:utf-8 #author:徐蔔靈 #交換排序.冒泡排序 L = [1, 3, 2, 32, 5, 4] def Bubble_sort(L): for i in ra
八大排序算法python實現(轉)
n) 順序 tails detail 時間 tail 哨兵 插入元素 lang 一、概述 排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。
Python學習(三) 八大排序算法的實現(下)
ram tty adjust 二叉樹 turn bre python 使用 元素 本文Python實現了插入排序、基數排序、希爾排序、冒泡排序、高速排序、直接選擇排序、堆排序、歸並排序的後面四種。 上篇:Python學習(三) 八大排序算法的實現(上)
八大排序算法總結:(五)快速排序
con 遞歸調用 結果 width 算法總結 調用 小數 排序算法總結 png 目的:掌握 快速排序 的 基本思想與過程、代碼實現、時間復雜度 1、基本思想與過程:(分治思想,挖坑填數) (1)從數列中選擇一個數作為key值; (2)將比這個數小的數全部放在它的左邊
JS排序算法總結:(八)基數排序
clas style dig ret .com strong spa radi 基本 目的:掌握 基數排序 的 基本思想與過程、代碼實現、時間復雜度 1、基本思想與過程:(只針對數字) (1)首先確定基數為10,數組的長度也就是10.每個數都會在這10個數中尋找自己的位
八大排序之快速排序算法-python實現
com 現在 主函數 port 右移 們的 冒泡 實現 odin 快排就是折中時間和空間的一個算法,可以說是較為高效的算法,平時用用他沒啥大問題。 自己也看到個比較形象生動的例子,為了讓大家能夠看的比較清楚,我就直接轉過來給大家看了哈!但是我使用python實現的: 註意以
內排序算法的整理(一)
至少 發生 元素 n個元素 color 技術分享 ++ 結果 快速排序算法 對各種內排序算法進行了整理,不足的日後補充。 1.冒泡排序 冒泡排序屬於交換排序,其基本思想是通過無序區中相鄰元素關鍵字間的比較和位置的交換使關鍵字最小的元素如氣泡一般逐漸往上“漂浮”至“水
Java常用的八種排序演算法與程式碼實現(三):桶排序、計數排序、基數排序
三種線性排序演算法:桶排序、計數排序、基數排序 線性排序演算法(Linear Sort):這些排序演算法的時間複雜度是線性的O(n),是非比較的排序演算法 桶排序(Bucket Sort) 將要排序的資料分到幾個有序的桶裡,每個桶裡的資料再單獨進行排序,桶內排完序之後,再把桶裡的
支援向量機(SVM)和python實現(三)
6. python實現 根據前面的一步步推導獲得的結果,我們就可以使用python來實現SVM了 這裡我們使用iris資料集進行驗證,由於該資料集有4維,不容易在二維平面上表示,我們先使用LDA對其進行降維,又因為該資料集有3類樣本,我們編寫的SVM是二分類的,所以我們將
JVM垃圾回收(四)- GC算法:實現(1)
並行 ctime 配置 使用情況 ava 第一個 中標 算法 bsp GC算法:實現 上面我們介紹了GC算法中的核心概念,接下來我們看一下JVM裏的具體實現。首先必須了解的一個重要的事實是:對於大部分的JVM來說,兩種不同的GC算法是必須的,一個是清理Young Gene
經典排序算法 — C# 版(上)
方式 選擇排序 可能 width bubble 插入 表示 == eight 提起排序,與我們的息息相關,平時開發的代碼少不了排序。 經典的排序算法又非常多,我們怎麽評價一個排序算法的好壞呢? 其實可以這樣想,要細致的比較排序算法好壞,那我們就從多方面盡可能詳細的對比
經典排序算法 — C#版本(中)
方式 public spa inter 分割 是否 return open class 歸並排序比較適合大規模得數據排序,借鑒了分治思想。 歸並排序原理 自古以來,分久必合合久必分。 我們可以這樣理解歸並排序,分-分到不能分為止,然後合並。 使用遞歸將問
算法系列--LeetCode(三)矩陣求島嶼數量
一個N*M的矩陣只有0、1兩種元素,1為陸地0為海洋。相鄰(上下左右四個方向)即為同一塊陸地,輸出矩陣中島嶼數量。 演算法的“廣度優先”還是“深度優先”: 1.廣度:一行一行遍歷記錄島嶼狀態以及島嶼產生與合併情況。 2.深度:從一個節點開始四個方向去尋找
算法——python實現快速排序(二分法思想)
append exc microsoft 部分 input temp style 數字 快速排序 實現思路 將所需要的數字存入一個列表中 首先,設置將最左側的那個數設置為基準數,在列表中索引為0 然後設置兩個移動位(用於比較),分別為最左邊和最右邊 然後最右邊那位向左
算法系列(三)插入排序的兩種改進:規避邊界檢測和取消交換(Java實現)
前言:演算法第四版習題2.1.24插入排序的哨兵和習題2.1.25不需要交換的插入排序 規避邊界檢測: 在插入排序的實現中先找到最小的元素並將其置於陣列的第一個位置,可以省掉內迴圈的判斷條件 j>0 。能夠省略判斷條件的元素稱為哨兵。 public class Ex
Java數據結構和算法(三)——冒泡、選擇、插入排序算法
我們 逆序排列 pub 多少 img 目錄 http 最小 數據結構 目錄 1、冒泡排序 2、選擇排序 3、插入排序 4、總結 上一篇博客我們實現的數組結構是無序的,也就是純粹按照插入順序進行排列,那麽如何進行元素排序,本篇博客我們介紹幾種簡單的排序算
十大經典排序算法詳細總結(含JAVA代碼實現)
出現的次數 完全 放置 累加 有時 經典 整數 eap 分割 原文出處:http://mp.weixin.qq.com/s/feQDjby4uYGRLbYUJq7Lpg 0、排序算法說明 0.1 排序的定義 對一序列對象根據某個關鍵字進行排序。 0.2 術
Python算法(一)冒泡排序
個數 宋體 現在 .... 結果 lang 冒泡排序 spa 元素 3 5 1 6 2 1)第一次:找到這些數中最大的一個,並把它放最後。 3、5找到大的數放到第二個位置 5、1找到大的數放到第三個位置 5、6找到大的數放到第四個位置 2、6找到大的數放大第五個位置
必須知道的八大種排序演算法【java實現】(三) 歸併排序演算法、堆排序演算法詳解
一、歸併排序演算法 基本思想: 歸併(Merge)排序法是將兩個(或兩個以上)有序表合併成一個新的有序表,即把待排序序列分為若干個子序列,每個子序列是有序的。然後再把有序子序列合併為整體有序序列。 歸併排序示例: 合併方法: 設r[i…n]由兩個有序子表r[i…m]和r[m+1…n]組
【機器學習算法-python實現】PCA 主成分分析、降維
pre gre text iss 主成分分析 int 找到 nts 導入 1.背景 PCA(Principal Component Analysis),PAC的作用主要是減少數據集的維度,然後挑選出基本的特征。 PCA的主要思想是移動坐標軸,找