1. 程式人生 > >氣泡排序演算法-Python描述

氣泡排序演算法-Python描述

    氣泡排序的思想:假如數列有n個數,我們從第n個數開始,比較第n個數與第n-1個數的大小,如果第n個小於第n-1個,則交換兩者的位置,否則不動;依次進行下去直到陣列當中的第一個元素,此時第一個元素就是整個陣列當中最小的數值;然後再一次比較陣列第n個與第n-1個數組的大小,後面的小於前面的則交換兩者的位置,直到整個陣列的第2個數為止(因為第一個元素是全陣列當中最小的一個,所以不必繼續跟它比較了),這樣大迴圈 n-2 次,裡面的小迴圈迴圈的次數為 直到之前被排出來的那個相對最小值;

def getrandata(num):
    a=[] 
    i=0
    while i<num:
        a.append(random.randint(0,100))
        i+=1
    return a
    

shu=getrandata(10)

shu
Out[19]: [59, 2, 14, 65, 79, 68, 22, 74, 17, 0]


def bubble(a):
    l=len(a)-2
    i=0
    while (i<l):    #大迴圈l次
        j=l
        while (j>=i):
            if (a[j]>a[j+1]):
                a[j+1],a[j]=a[j],a[j+1]
            j-=1
        i+=1
    return a


bubble(shu)
Out[22]: [0, 2, 14, 17, 22, 59, 65, 68, 74, 79]


相關推薦

氣泡排序演算法-Python描述

    氣泡排序的思想:假如數列有n個數,我們從第n個數開始,比較第n個數與第n-1個數的大小,如果第n個小於第n-1個,則交換兩者的位置,否則不動;依次進行下去直到陣列當中的第一個元素,此時第一個元

c#中氣泡排序演算法描述

int temp = 0; int b = 0; int[] arr = { 23, 44, 66, 76, 98, 11, 3, 99, 7 };# region該段與排序無關Console.WriteLine("排序前的陣列:");foreach (int item in arr){ Co

排序演算法之快速排序氣泡排序python程式碼實現

一、快速排序 1.在列表中選出一個基準數(通常為列表的第一個數) 2.將列表中小於基準數的資料移到基準列表的左邊,將大於基準數的資料移到基準數的右邊 3.對於基準數左,右兩邊的列表,不斷重複以上兩個過程,直到每個子集只有一個元素, 即為全部有序的. def qu

python氣泡排序演算法

氣泡排序 氣泡排序:暫且規定:排序好的順序是從小到大。 顧名思義,冒泡冒泡,就像燒水一樣,剛開始涼水的時候,看著很平靜, 當燒到一定溫度後,就會有小水泡從下邊冒上來。 氣泡排序演算法就是根據兩兩比較,如果這個數比和它比較的數大,那麼他倆交換位置, 繼續和下一個數

python實現氣泡排序演算法的方法

list = [] print('你想排列幾個數?') try: num = int(input()) for i in range(num): a = int(inpu

排序氣泡排序,快速排序演算法Python實現

桶排序 案例:學生分數為0~10,要按照從小到大排序: 1. 首先我們需要申請一個大小為10的陣列(python為列表),然後遍歷學生成績,每遍歷一個成績就在序號=成績的位置+1. 2. 生成完列

氣泡排序演算法及其優化(Python

#!/usr/bin/python3 # -*- coding: UTF-8 -*- import random ''' 氣泡排序演算法及其優化 氣泡排序的基本特徵是隻能交換相鄰的元素。 從下邊界開始,一趟掃描下來,可以把當前最大值頂到上邊界; 如果沒有發生交換操作,則表

usersig 生成演算法 python 描述

由於我們的使用者使用的後臺的工具和平臺不盡相同,而我們 api 所能適應的平臺是有限的,所以在此簡要描述下 usersig 的生成演算法,以便在使用者需要而我們又沒有提供時,使用者可以自己進行實現。下面是 python 描述的演算法(其實直接可以用的), #! /usr/bin/pytho

經典排序演算法(1)——氣泡排序演算法詳解

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

153-練習5 對陣列進行排序,Array.Sort和氣泡排序演算法

5,編寫一個控制檯程式,要求使用者輸入一組數字用空格間隔,對使用者輸入的數字從小到大輸出。(Array.Sort方法和氣泡排序) Array.Sort()方法,CLR提供的排序方法,使用的是快速排序。 string str = Console.ReadLine();

排序演算法python

演算法概述 演算法效能 任何基於比較的演算法時間複雜度上不會優於NlgN,低於這一值說明演算法未能覆蓋所有的情況。 演算法 穩定性 時間複雜度 空間複雜度 氣泡排序

氣泡排序演算法 For ERL

(ERL的氣泡排序)Bubble Sorting IN ERLANG 實現原理 1. 從陣列的第一個元素arr[0]開始,兩兩比較arr[n]和arr[n+1],如果前面的數大於後面的數arr[n] > arr[n+1],那麼交換兩個元素的位置,把大的數往後移動 2.

氣泡排序演算法java實現

package algorithm; /** * 氣泡排序演算法 * @author su * */ public class BubbleSort { public static void main(String[] args) { int[] a = {6,2,5,4,7,1,

經典排序演算法——氣泡排序演算法詳解

一、演算法基本思想 (1)基本思想 氣泡排序的基本思想就是:從無序序列頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大(小)的資料元素交換到了無序佇列的隊尾,從而成為有序序列的一部分;下一次繼續這個過程,直到所有資料元素都排好序。 演算法的核心在於每次通過兩兩比較交換位置,選

快速排序演算法Python實現

快速排序演算法,簡稱快排,是最實用的排序演算法,沒有之一,各大語言標準庫的排序函式也基本都是基於快排實現的。 本文用python語言介紹四種不同的快排實現。 1. 一行程式碼實現的簡潔版本 quick_sort = lambda array: array if le

經典氣泡排序演算法

public static void main(String[] args) { int[] a = {23, 4, 5, 1, 3, 33, 89}; for (int i = 0; i < a.length; i++) { //外層迴圈控制迴圈的次數

氣泡排序演算法

void print_list(int data_list[] , int n) {     for(int i = 0 ; i < n ; i++)         printf("%5d " , data_list[i]);     printf("\n"); }

這可能是最透徹的氣泡排序演算法解析(java實現)

氣泡排序是一種思想簡單,便於理解和實現的排序演算法,也許是很多人學習的第一個排序演算法,廢話不多說,我們來實現它 演算法詳解 我們以升序排列為例,演算法的思想是,遍歷整個陣列,依次對陣列中的每兩個數進行比較大小,通過兩個數字的交換,達到將最大的元素移動到陣列的最

迷人的名字——氣泡排序演算法

氣泡排序的核心是雙層套嵌,所以他的時間複雜度為O(N*N),它是有一個迷人的名字的演算法,不過複雜度較大,所以在使用中應避免。 思想: 每次比較相鄰的元素,如果他倆的大小順序錯誤,就交換他們的位置。 實現:如果有n個數,就需要進行(n-1)次操作,每次操作比較相鄰的兩個數,並調整他們的順

Java面試中最基礎的演算法氣泡排序演算法和二叉樹遍歷

首先是冒泡需要演算法,氣泡排序是所有的演算法最最基礎的演算法,一般人只是知道思路,但是真正的敲程式碼不一定能敲出來; 氣泡排序玩以後,使得陣列的數安從小到大的順序排列出來; 氣泡排序演算法: public void BuddleSort(){ public st