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比較,交換位置 ...