冒泡演算法與選擇排序

2021-08-07 07:10:54 字數 1074 閱讀 5313

冒泡演算法:

依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一次:首先比較第1個和第2個數,將小數放前,大數      放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一次結束,將最大的數放到了最後。在第二次:仍從第一對數開始比較 (因為可能由於第2個數和第3個數的交換,使得第1個數不再小於第2個數),將小數放前,大數放後,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二次結束,在倒數第二的位置上得到乙個新的最大數(其實在整個數列中是第二大的數)。如此下去,重複以上過程,直至最終完成排序

list1 = [10,9,8,7,6,5,4,3,2,1]

list_len = len(list1)

#每次與後一項進行比較,所以只需要比較到list_len-1項

for j in range(1,list_len):

for i in range(list_len - j):

if list1[i] > list1[i + 1]:

list1[i], list1[i + 1] = list1[i + 1], list1[i]

print list1

print list1

選擇排序演算法:

它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法

(比如序列[5, 5, 3]第一次就將第乙個[5]與[3]交換,導致第乙個5挪動到第二個5後面)

def selection_sort(list1):

for i in range(len(list1)):

for j in range(i+1,len(list1)):

if list1[j] < list1[i]:

list1[i],list1[j] = list1[j],list1[i]

return list1

list1 = [9,7,3,6,3,8,5]

print selection_sort(list1)

選擇氣泡排序演算法

使用氣泡排序 package com.qixin.five public class bubblesort inttemp system.out.println 原有陣列內容 printarray array for inti 1 i array.length i system.out.printl...

選擇氣泡排序演算法

使用氣泡排序 package com.qixin.five public class bubblesort inttemp system.out.println 原有陣列內容 printarray array for inti 1 i array.length i system.out.printl...

選擇氣泡排序演算法

使用氣泡排序 package com.qixin.five public class bubblesort inttemp system.out.println 原有陣列內容 printarray array for inti 1 i array.length i system.out.printl...