python排序相关

1,交换排序–冒泡法

2,选择排序

简单选择排序

两两比较大小,找出极大值或极小值,然后将其放在固定的位置。
两个数从左到右,两两比较,记录较大值的索引。
第一轮下来,将本轮最大值和索引0的交换
第二轮,将本轮最大值和索引1交换(此时需要比较的次数-1次)
第N轮完成后,排序完成。
N为数字的个数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
m_list=[
[1,9,8,5,6,7,4,3,2],
[1,2,3,4,5,6,7,8,9],
[9,8,7,6,5,4,3,2,1]
]
nums = m_list[0]
length = len(nums)
print(nums)

count_swap = 0
count_iter = 0

for i in range(length): #i=0
maxindex=i #maxindex = 0

for j in range(i+1,length): #j in range[1,9) j =1
count_iter +=1
if nums[maxindex] < nums[j]: #muns[0] < num[1] 如果极大的值小于[j],则把j的值赋值给maxindex
maxindex = j # maxindex = 1
if i != maxindex: #如果i的值不等于maxindex的值 ,将最大的id的值给指定的 id 。
tmp = nums[i] #tmp = nums[i]
#print(nums[i])
nums[i]=nums[maxindex] #
#print(nums[i])
#print(nums[maxindex])
nums[maxindex] =tmp
count_swap +=1
print(nums,count_swap,count_iter)
[1, 9, 8, 5, 6, 7, 4, 3, 2]
[9, 8, 7, 6, 5, 4, 3, 2, 1] 7 36
二元选择排序
---------------- 谢谢光临 ----------------
0%