#冒泡排序
def bubble_sort(a):
length=len(a)
#以下注释为修改前错误行
'''
while(True):
i,target=0,0
while i<length-1:
if a[i]>a[i+1]:
a[i],a[i+1]=a[i+1],a[i]
target+=1
i+=1
if target==0:
break
'''
for j in range(length-1,-1,-1):
for k in range(j):
if a[k]>a[k+1]:
a[k],a[k+1]=a[k+1],a[k]
return a
a=[]
import random,time
for i in range(eval(input())):
a.append(random.randint(0,10000))
if __name__=="__main__":
start=time.time()
print(bubble_sort(a))
end=time.time()
print(end-start)
'''
#输入及输出结果(列表内容省略)
10000
24.324698448181152
'''
#修改后:
10000
12.339789628982544
#快速排序
def quick_sort(a):
length=len(a)
if length==1 or length ==0:
return a
else:
tmp,i=1,0
while i+tmp<length:
if a[i]>a[i+tmp]:
target=a[i+tmp]
for j in range(i+tmp-1,i-1,-1):
a[j+1]=a[j]
a[i]=target
i+=1
else:
tmp+=1
return quick_sort(a[:i])+[a[i]]+quick_sort(a[i+1:])
a=[]
import random,time
for i in range(eval(input())):
a.append(random.randint(0,10000))
if __name__=="__main__":
start=time.time()
print(quick_sort(a))
end=time.time()
print(end-start)
#输入及输出结果(列表内容省略)
10000
2.8903286457061768