冒泡排序法:(从小到大排序)
例如:
a = [1,4,3,2]
比较方式:相邻的两个数字先进行比较,也就是a[0]和a[1],发现不是">"的关系,即
a[0],a[1]不需要交换位置,就继续比较a[1]和a[2],发现4>3,即调换4和3的位置。。。依次进行。
[1,4,3,2]
调换过程
第一轮:[1,4,3,2]
第二轮:[1,3,4,2]
第三轮:[1,3,2,4]
轮数=len(a)-1;即执行3轮。
for i in range(length-1): ##进行几轮列表比较
for j in range(0,length-1-i): ##指的是比如第二轮的时候就不用再次去执行上一轮
例如第一轮执行完1和4比较,第二轮就不用执行1和4,直接执行4和3比较,依次进行
##交换数,t相当于中介,交换大数和小数对位置
if(date[j]>date[j+1]):
t = date[j]
date[j] = date[j+1]
date[j+1] = t
def main():
n = int(input(“请输入n个整数对个数n:”))
a=[]
for i in range(n):
a.append(int(input(“请分别输入整数元素,并按回车继续:”))) ##一次只能输入一个数然后添加到a
print(‘排序前对数组为:’,a)
print(‘排序后对数组为:’,Sort(a))## 调用Sort(a)函数
if __ name__==’__ main__’:
main()
完整代码如下:
def Sort(date):
length = len(date)
for i in range(length-1):
for j in range(0,length-i-1):
##交换数,t相当于中介,交换大数和小数对位置
if(date[j]>date[j+1]):
t = date[j]
date[j] = date[j+1]
date[j+1] = t
return date
def main():
n = int(input(“请输入n个整数对个数n:”))
a=[]
for i in range(n):
a.append(int(input(“请分别输入整数元素,并按回车继续:”)))
print(‘排序前对数组为:’,a)
print(‘排序后对数组为:’,Sort(a))
if __ name__==’__ main__’:
main()