冒泡排序的思想:假如数列有n个数,我们从第n个数开始,比较第n个数与第n-1个数的大小,如果第n个小于第n-1个,则交换两者的位置,否则不动;依次进行下去直到数组当中的第一个元素,此时第一个元素就是整个数组当中最小的数值;然后再一次比较数组第n个与第n-1个数组的大小,后面的小于前面的则交换两者的位置,直到整个数组的第2个数为止(因为第一个元素是全数组当中最小的一个,所以不必继续跟它比较了),这样大循环 n-2 次,里面的小循环循环的次数为 直到之前被排出来的那个相对最小值;
def getrandata(num):
a=[]
i=0
while i<num:
a.append(random.randint(0,100))
i+=1
return a
shu=getrandata(10)
shu
Out[19]: [59, 2, 14, 65, 79, 68, 22, 74, 17, 0]
def bubble(a):
l=len(a)-2
i=0
while (i<l): #大循环l次
j=l
while (j>=i):
if (a[j]>a[j+1]):
a[j+1],a[j]=a[j],a[j+1]
j-=1
i+=1
return a
bubble(shu)
Out[22]: [0, 2, 14, 17, 22, 59, 65, 68, 74, 79]