简单选择排序:
m_lst = [
[1,2,3,4,5,6,7,8,9],
[2,3,4,5,7,8,9,6,1],
[9,8,7,6,5,4,3,2,1]
]
nums = m_lst[0]
count_swap = 0
count_inter = 0
for i in range(len(nums)):
maxindex = i
for j in range(i+1,len(nums)):
count_inter += 1
if nums[j] > nums[maxindex]:
maxindex = j
if maxindex != i:
nums[i],nums[maxindex] = nums[maxindex],nums[i]
count_swap += 1
print('Swap:{} Inter:{} Result:{}'.format(count_swap,count_inter,nums))
运行结果:
Swap:4 Inter:36 Result:[9, 8, 7, 6, 5, 4, 3, 2, 1]
案例变形1:(二元排序)
m_lst = [
[1,2,3,4,5,6,7,8,9],
[2,3,4,5,7,8,9,6,1],
[9,8,7,6,5,4,3,2,1]
]
nums = m_lst[0]
count_swap = 0
count_inter = 0
for i in range(len(nums)//2):
maxindex = i
minidex = -i-1