今天我们来介绍一下python中的排序,在python中有八种排序,首先讲的是选择排序。下面放一下代码段。
num = [8,5,2,3,7,4,6,1,9]
for i in range(0,len(num)):
for j in range(i+1,len(num)):
if num[i] >= num[j]:
num[i],num[j] = num[j],num[i]
print(num)
下面是运行图
首先让我们讲一下原理,选择排序就是让第一个数去跟一个一个的数去比较,因为我们是从小到大排序的,所以就是谁比它小就跟它交换位置,我们来讲一下第一层循环,可以看见我们的第一个数是8,8先跟5比较,因为5比它小所以跟它交换位置,这第一层循环就结束了,第二层循环就是从5先与8比,5比8小不交换位置,比2大此时与2交换位置,第二层循环结束,就这样让第一个数依次去与后面的数比较,遇到小的就交换位置,没有就继续。
下面是代码段
num = [8,5,2,3,7,4,6,1,9]
for i in range(0,len(num)-1):
for j in range(0,len(num)-1-i):
if num[j] >= num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
print(num)
冒泡排序的原理就是,让第一个数与后面的数做比较,若后面的数比它小就交换位置,一直比到一个比它大的数一次循环才结束。从8开始一直比到9才结束,然后在从新的系列中循环,注意循环条件,每一次循环都要少比较一次,因此要 -i。
下面是代码段
num = [8,5,2,3,7,4,6,1,9]
for i in range(0,len(num)):
for j in range(i,0,-1):
if num[j] <= num[j-1]:
num[j],num[j-1] = num[j-1],num[j]
print(num)
插入排序的原理就是让一个数与它前面的数做比较,若前面的数比它大就交换位置。注意循环的条件就是第一层的循环在依次往下加,就是一开始是指到5,让5与8比较,这时第二层循环的作用就是让j和j-1前移,这时5前面已经没有了,就进行第二次循环2与5比较交换位置,再前移让2与8比较交换位置,就这样循环下去就行了。
这些就是我目前总结的python中的三种循环,后续会将后面的几种循环补上。