# Bubble Sorting# Version 1
num_list =[4,5,1,2,9,6,8,7,3]print(num_list)
length =len(num_list)# the number of the num_list
count_swap =0
count =0for i inrange(length):
Flag =Falsefor j inrange(length-i-1):
count +=1if num_list[j]> num_list[j+1]:
temp = num_list[j+1]
num_list[j+1]= num_list[j]
num_list[j]= temp
Flag =True
count_swap +=1print(num_list)print(count, count_swap)
[4,5,1,2,9,6,8,7,3][1,2,3,4,5,6,7,8,9]3614
第二种思路
# Bubble Sorting# Version 2# Improved Version
num_list =[1,2,3,4,5,6,7,8,9]print(num_list)
length =len(num_list)# the number of the num_list
count_swap =0
count =0for i inrange(length):
Flag =Falsefor j inrange(length-i-1):
count +=1if num_list[j]> num_list[j+1]:
temp = num_list[j+1]
num_list[j+1]= num_list[j]
num_list[j]= temp
Flag =True
count_swap +=1ifnot Flag:breakprint(num_list)print(count, count_swap)
[1,2,3,4,5,6,7,8,9][1,2,3,4,5,6,7,8,9]80
第二种思路的优势,减少不必要的算法
# Bubble Sorting# Version 1
num_list =[1,2,3,4,5,6,7,8,9]print(num_list)
length =len(num_list)# the number of the num_list
count_swap =0
count =0for i inrange(length):
Flag =Falsefor j inrange(length-i-1):
count +=1if num_list[j]> num_list[j+1]:
temp = num_list[j+1]
num_list[j+1]= num_list[j]
num_list[j]= temp
Flag =True
count_swap +=1print(num_list)print(count, count_swap)