题目:对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])




输出结果:

Python基础练习实例36(选择排序)