資訊內(nèi)容
Python基礎(chǔ)練習(xí)實(shí)例36(選擇排序)
題目:對(duì)10個(gè)數(shù)利用選擇法進(jìn)行排序。
簡(jiǎn)單選擇排序的基本思想:第1趟,在待排序記錄r[1]~r[n]中選出最小的記錄,將它與r[1]交換;第2趟,在待排序記錄r[2]~r[n]中選出最小的記錄,將它與r[2]交換;以此類推,第i趟在待排序記錄r[i]~r[n]中選出最小的記錄,將它與r[i]交換,使有序序列不斷增長(zhǎng)直到全部排序完畢。
以下為簡(jiǎn)單選擇排序的存儲(chǔ)狀態(tài),其中大括號(hào)內(nèi)為無序區(qū),大括號(hào)外為有序序列:
初始序列:{49 27 65 97 76 12 38}
第1趟:12與49交換:12{27 65 97 76 49 38}
第2趟:27不動(dòng) :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
#篩選最小數(shù)
for j in range(i + 1, len(s)):
if s[index] > s[j]:
index = j
#交換位置
s[i], s[index] = s[index], s[i]
# 輸出排序后的結(jié)果
for m in range(0, len(s)):
print(s[m])
輸出結(jié)果:
本站部分內(nèi)容轉(zhuǎn)載自網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系管理員及時(shí)刪除。

- 上一篇
Python基礎(chǔ)練習(xí)實(shí)例37(數(shù)組逆序)
題目:將一個(gè)數(shù)組逆序,如[9, 6, 5]逆序后[5, 6, 9]。 程序分析:用數(shù)組第一個(gè)數(shù)與最后一個(gè)數(shù)交換,第二個(gè)數(shù)與倒數(shù)第二個(gè)數(shù)交換,以此類推
- 下一篇
Python基礎(chǔ)練習(xí)實(shí)例35(找素?cái)?shù))
題目:求指定范圍之內(nèi)的素?cái)?shù)。 程序分析:一個(gè)大于1的自然數(shù),除了1和它自身外,不能整除其他自然數(shù)的數(shù)叫做質(zhì)數(shù)(prime number)又稱素?cái)?shù)。