选择排序
nums = [ 1, 9, 8, 4, 2, 7, 5, 6, 3, 0]
lengh = len(nums)
maxnum = 0
for i in range(lengh-1):
logn = i
for j in range(i,lengh-1):
if nums[j] > nums[logn]:
print(i,j)
logn = j
maxnum = j
nums[i],nums[maxnum] = nums[maxnum],nums[i]
print(nums)
选择二元排序
nums = [ 1, 9, 8, 4, 2, 7, 5, 6, 3, 0]
lengh = len(nums)
for i in range(lengh//2):
maxnum = i
minnum = -i-1
for j in range(i,lengh-i):
if nums[j] > nums[maxnum]:
print('max',i,j)
maxnum = j
if nums[j] < nums[minnum]:
print('min', i, j)
minnum = j
if maxnum != i:
nums[i],nums[maxnum] = nums[maxnum],nums[i]
if minnum == i:
minnum = maxnum
if minnum != -i-1:
nums[-i-1], nums[minnum] = nums[minnum], nums[-i-1]
print(nums)
冒泡(交换)排序
num = [ 1, 9, 8, 4, 2, 7, 5, 6, 3, 0]
lengh = len(num)
for i in range(lengh):
count = 0
for j in range(lengh-i-1):
if num[j+1] > num[j]:
count += 1
num[j+1],num[j] = num[j],num[j+1]
print(num)
插入排序
List = [1, 9, 8, 4, 2, 7, 5, 6, 3]
nums = [0] + List
count_swap = 0
count_iter = 0
length = len(nums)
for i in range(2,length):
nums[0] = nums[i]
j = i - 1
count_iter += 1
if nums[j] > nums[0]:
while nums[j] > nums[0]:
nums[j+1] = nums[j]
j -= 1
count_swap += 1
nums[j+1] = nums[0]
print(nums,count_swap,count_iter)