def BubbleSort(l1):
for i in range(0,len(l1)-1):
is_swap=False #这里判断若j循环完成没有发生交换则排序完成,初始化False
for j in range(0,len(l1)-i-1):
if(l1[j]>l1[j+1]):
if(is_swap==False):
is_swap=True
temp=l1[j+1]
l1[j+1]=l1[j]
l1[j]=temp
if(is_swap==False):
break
def QuickSort(l,low,high): #利用递归
if low>=high:
return
i=low
j=high
basis=l[i]
while(i<j):
while(l[j]>=basis and i<j): #找到比l[i]小的值,放到i的位置上
j=j-1
l[i]=l[j]
while(l[i]<=basis and i<j): #找到比l[j]大的值,放到j的位置上
i=i+1
l[j]=l[i]
l[i]=basis
QuickSort(l,low,i-1) #左区间快速排序
QuickSort(l,i+1,high) #右区间快速排序
if __name__=="__main__":
l1=[7,10,9,1,2,3,11,23,96]
l2=[7,10,9,1,2,3,11,23,96]
BubbleSort(l1)
print(l1)
QuickSort(l2,0,len(l2)-1)
print(l2)
这里要注意,当列表作为参数传递时,在函数内修改列表,列表的值会发生改变