氣泡排序和選擇排序區別

2021-09-29 18:28:21 字數 1136 閱讀 5427

原理上:

冒泡是兩兩相鄰的比較,遇到最大的就交換,把最大的沉到後面。

選擇排序是假設第乙個為最小,然後不斷和後面的進行比較,遇到更小的就交換位置,把最小的換到前面。

#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.優點 比較簡單,空間複雜...