經典演算法之氣泡排序

2022-04-10 09:42:50 字數 1492 閱讀 7454

1、演算法思想

取第i元素和第i+1個元素做比較,假如第i+1個元素大於第i個元素,則交換兩個元素。一直到待排序的集合是有序的為止。假設待排序的元素集合: 5 4  3 1 。

第一次冒泡後的序列:4 3 1 5

第二次冒泡的序列:3  1 4 5

第三次冒泡後的序列:1 3 4 5

n元素序列一共需要比較n-1輪。第i個元素需要比較n-i-1次。需要兩層迴圈實現。

2、**實現

2.1、python 3.x

1

#!coding:utf-82#

氣泡排序3#

輸入:待排序的元素集合4#

輸出:已排序元素集合

5def

bubble_sort(lst):

6 lst_len=len(lst)7#

控制迴圈次數,n個元素需要n輪比較

8for i in range(lst_len-1):9#

第n個元素需要比較(n-n-1)次

10for j in range(lst_len-i-1):

11if lst[j]>lst[j+1]:12#

如果第j個元素大於j+1,則交換

13 lst[j],lst[j+1]=lst[j+1],lst[j]

14return

lst15

16if

__name__ == "

__main__":

17 a=bubble_sort([1,3,8,6,7,0])

18print(a)

執行結果:

[0, 1, 3, 6, 7, 8]

2.2、shell

1

#!/bin/bash

2function bubblesort()

3 - 1`

7for i in

`seq 0 $`8do

9 jtmp=$(($ - $ -1))

10for j in

`seq 0 $ `

11do

12if (( $ > $ ));then

13 tmp=$

14 lst[j]=$

15 lst[j+1]=$

16fi

17done

18done

19 echo "

sorted list is :$"20

}21 lst=(1 3 8 6 70)

22 bubblesort "

$"

執行結果:

sorted list is :0 1 3 6 7 8

經典演算法之氣泡排序

author s email wardseptember gmail.com date 2017.12.4 氣泡排序 氣泡排序是通過一系列的 交換 動作完成的。首先第乙個關鍵字和第二個關鍵字比較,如果第乙個大,則二者交換,否則不交換 然後第二個關鍵字和第三個關鍵字比較,如果第二個大,則二者交換,否則...

經典排序演算法之氣泡排序

好記性不如爛筆頭。氣泡排序屬於交換排序,交換排序的基本思想是 兩兩比較待排序記錄的關鍵字,當兩個記錄的次序相反時即進行交換,直到沒有反序的記錄為止。include using namespace std void printpro int input,int len void swap int fi...

經典排序演算法之 氣泡排序

int a 對於上面的乙個陣列,氣泡排序的原理是 依次比較相鄰元素的大小,前乙個元素若比後乙個元素大,則交換兩個元素的位置,給人的感覺是大的元素像氣泡一樣往上冒,也可以把小的元素往上冒。比較過程如下 最大值向上冒 陣列初始狀態 第一次比較後 5不比7大不交換位置 第二次比較後 7和3比較,交換位置 ...