資訊內容
Python基礎練習實例36(選擇排序)
題目:對10個數利用選擇法進行排序。
簡單選擇排序的基本思想:第1趟,在待排序記錄r[1]~r[n]中選出最小的記錄,將它與r[1]交換;第2趟,在待排序記錄r[2]~r[n]中選出最小的記錄,將它與r[2]交換;以此類推,第i趟在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長直到全部排序完畢。
以下為簡單選擇排序的存儲狀態,其中大括號內為無序區,大括號外為有序序列:
初始序列:{49 27 65 97 76 12 38}
第1趟:12與49交換:12{27 65 97 76 49 38}
第2趟:27不動 :12 27{65 97 76 49 38}
第3趟:65與38交換:12 27 38{97 76 49 65}
第4趟:97與49交換:12 27 38 49{76 97 65}
第5趟:76與65交換:12 27 38 49 65{97 76}
第6趟:97與76交換:12 27 38 49 65 76 97 完成
程序示例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
s = [3, 4, 1, 6, 2, 9, 7, 0, 8, 5]
for i in range(0, len(s) - 1):
#記錄最小位置
index = i
#篩選最小數
for j in range(i + 1, len(s)):
if s[index] > s[j]:
index = j
#交換位置
s[i], s[index] = s[index], s[i]
# 輸出排序后的結果
for m in range(0, len(s)):
print(s[m])
輸出結果:
本站部分內容轉載自網絡,如有侵權請聯系管理員及時刪除。
