排序原理
通过每次遍历整个数据集合,第一遍历完,找寻出这组数据中最大的和最后一个位置的数字调换位置,第二次找出第二大的数字和倒数第二位置的数据调换位置,以此类推,直到排完所有的数字。选择排序在理解上是比较容易的,接下来使用一组实际的例子进行验证。
算法思想
测试数据: 3 44 38 5 47 15 36 26 27 2
第一次遍历:
遍历完该组数据后最大的数字为47,将47和末置位的2进行位置的互换。
第一次遍历结果:3 44 38 5 2 15 36 26 27 47
第二次遍历:
44和27进行位置互换。
第二次遍历结果:3 27 38 5 2 15 36 26 44 47
第三次遍历:
38和26进行位置互换。
第三次遍历结果:3 27 26 5 2 15 36 38 44 47
第四次遍历:
36的位置刚好就是自己应该的位置,不用进行调换。
第四次遍历结果:3 27 26 5 2 15 36 38 44 47
第五次遍历:
27和15进行位置互换。
第五次遍历结果:3 15 26 5 2 27 36 38 44 47
第六次遍历:
26和2进行位置互换。
第六次遍历结果:3 15 2 5 26 27 36 38 44 47
第七次遍历:
15和5进行位置互换。
第七次遍历结果:3 5 2 15 26 27 36 38 44 47
第八次遍历:
5和2进行位置互换。
第八次遍历结果: 3 2 5 15 26 27 36 38 44 47
第九次遍历:
3和2进行位置互换。
第九次遍历结果:2 3 5 15 26 27 36 38 44 47
至此,该组数据进行排序完成。接下来使用python语言进行实现完成,代码如下所示:
def maopao_list(list): #冒泡排序 # n=int(len(list)) # for i in range(n-1): # for j in range(i+1,n): # if list[i]>list[j]: # list[i], list[j] = list[j], list[i] #选择排序 n=int(len(list)) for i in range(0,n-1): min_=i for j in range(i+1,n): if list[j]
运行结果: