# # python# # 氣泡排序:公升序排序
# lt = [8, 3, 6, 9, 5, 2, 4, 1, 7
]# n =len(lt)
# # 外出迴圈控制排序多少輪
# for i in range(n - 1
):# # 記憶體迴圈控制相鄰兩個元素的比較
#
for j in range(n - 1 -i):
#
if lt[j] > lt[j + 1
]:# # 通用交換元素方式
# # temp =lt[j]
# # lt[j] = lt[j+1
]# # lt[j+1] =temp
# # python中特有方式
# lt[j],lt[j + 1] = lt[j + 1
], lt[j]
## print(lt)
# temp = lt[j];lt[j] = lt[j+1];lt[j+1] = temp 等價於lt[j], lt[j + 1] = lt[j + 1
], lt[j]
選擇排序思路:
第一次:找到最小值,存到列表的0座標位置
第二次:找到次小值,存到列表的1座標位置
第三次:找到第三小的值,存到列表的2座標位置
第四次:找到第四小的值,存到列表的3座標位置
第五次:找到第五小的值,存到列表的4座標位置 剩下的最後乙個位置的數,就是最大值
lt = [8, 3, 6, 9, 5, 2, 4, 1, 7
]for i in range(len(lt)-1
): min_index=i
for j in range(i+1
,len(lt)) :
if lt[min_index]>lt[j]:
# temp=lt[min_index]
# lt[min_index]=lt[j]
# lt[j]=temp
lt[min_index],lt[j]=lt[j],lt[min_index]
print(lt)
print(lt)
實現過程如下:
[3, 8, 6, 9, 5, 2, 4, 1, 7][
2, 8, 6, 9, 5, 3, 4, 1, 7][
1, 8, 6, 9, 5, 3, 4, 2, 7][
1, 6, 8, 9, 5, 3, 4, 2, 7][
1, 5, 8, 9, 6, 3, 4, 2, 7][
1, 3, 8, 9, 6, 5, 4, 2, 7][
1, 2, 8, 9, 6, 5, 4, 3, 7][
1, 2, 6, 9, 8, 5, 4, 3, 7][
1, 2, 5, 9, 8, 6, 4, 3, 7][
1, 2, 4, 9, 8, 6, 5, 3, 7][
1, 2, 3, 9, 8, 6, 5, 4, 7][
1, 2, 3, 8, 9, 6, 5, 4, 7][
1, 2, 3, 6, 9, 8, 5, 4, 7][
1, 2, 3, 5, 9, 8, 6, 4, 7][
1, 2, 3, 4, 9, 8, 6, 5, 7][
1, 2, 3, 4, 8, 9, 6, 5, 7][
1, 2, 3, 4, 6, 9, 8, 5, 7][
1, 2, 3, 4, 5, 9, 8, 6, 7][
1, 2, 3, 4, 5, 8, 9, 6, 7][
1, 2, 3, 4, 5, 6, 9, 8, 7][
1, 2, 3, 4, 5, 6, 8, 9, 7][
1, 2, 3, 4, 5, 6, 7, 9, 8][
1, 2, 3, 4, 5, 6, 7, 8, 9][
1, 2, 3, 4, 5, 6, 7, 8, 9]
排序 氣泡排序與選擇排序
最近複習大學學過的演算法,這裡做個筆記。排序,我們學過 這裡需要了解什麼是時間複雜度,什麼是空間複雜度。簡單而言,時間複雜度指執行的次數,空間複雜度指消耗的記憶體。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序 如從大到小 首字母從z到a 錯誤就把他們交換過來。走訪元素的工作是重複地...
選擇排序與氣泡排序
今早心血來潮,又想看看氣泡排序.於是乎度娘一番,找到了度娘給我的這篇文章,前面的文字描述還是簡單易懂的,可惜給出的 示範有些文不對題.於是乎又wiki一番.發現上文給出的 形似選擇排序,於是總結如下 我們假設有乙個陣列 624159 對應的索引也就是 0 5,如果我想描述第二個位置,也就是數字2的位...
選擇排序與氣泡排序
選擇排序 static void sort1 int arr var temp arr i arr i arr min arr min temp 氣泡排序 static void sort2 int arr static void main string args sort1 arr foreach...