原理上:
冒泡是兩兩相鄰的比較,遇到最大的就交換,把最大的沉到後面。
選擇排序是假設第乙個為最小,然後不斷和後面的進行比較,遇到更小的就交換位置,把最小的換到前面。
#author:zzk
#coding=utf-8
# 氣泡排序
data_set = [ 9,1,22,31,45,3,6,2,11 ]
for i in range(len(data_set)):
for j in range(len(data_set) - i- 1):
if data_set[j] > data_set[j+1]:
tmp = data_set[j]
data_set[j] = data_set[j+1]
data_set[j+1] = tmp
# -*- coding:utf-8 -*-
#author:zzk
# 選擇排序
def bubble_sort(lists):
for i in range(0, len(lists)):
for j in range(i+1, len(lists)):
if lists[i] > lists[j]:
lists[i], lists[j] = lists[j], lists[i]
return lists
lists = [2,5,1,7,22,6,0,33,12]
print bubble_sort(lists)
程式設計上:
冒泡:第二個for迴圈是要剩餘最後那個不用比較, j和j+1,相鄰的比較,前面的大就交換位置
for i in range(len(data_set)):
for j in range(len(data_set) - i- 1):
if data_set[j]
> data_set[j+1]:
選擇:第二個for為i固定了,從i後面乙個開始和i作對比,前面大就交換位置
for i in range(0, len(lists)):
for j in range(i+1, len(lists)):
if lists[i] > lists[j]:
氣泡排序和選擇排序區別
氣泡排序法 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處 分析 第一次比較排序的結果 會把其中最大的資料排到最大的索引處 第二次比較排序後的結果 因為第一次已經把最大的乙個資料放到了最大的索引的地方,所以這次要進行比較的資料比陣列裡面的元素的資料個數 1個,而第二大的資料也會排...
氣泡排序和選擇排序的區別?
在一次寫選擇排序演算法的時候,發現和冒泡沒啥區別,後來發現寫錯了,寫的就是冒泡而非選擇。先看一下期初的 templatevectorselectionsort vector arr return arr 再看一下冒泡 2.氣泡排序 templatevectorbubblesort vector ar...
氣泡排序和選擇排序的區別
一 區別 二 氣泡排序優缺點 三 選擇排序優缺點 1.氣泡排序是比較相鄰位置的兩個數,而選擇排序是按順序比較,找最大值或者最小值 2.氣泡排序每一輪比較後,位置不對都需要換位置,選擇排序每一輪比較都只需要換一次位置 3.氣泡排序是通過數去找位置,選擇排序是給定位置去找數 1.優點 比較簡單,空間複雜...