冒泡、插入排序代码见:
https://blog.csdn.net/JohnsonSmile/article/details/89386783
https://blog.csdn.net/JohnsonSmile/article/details/89407058
下面是快速排序的代码:
import numpy as np;
def quick(L):
if len(L)<=1:
return L;
l = L[0];
l1,l2 = [],[];
for t in L:
if t>l:
l2.append(t);
elif t<l:
l1.append(t);
lnew = quick(l1) + [l] + quick(l2);
return lnew;
if __name__ == '__main__':
l1 = np.round(np.random.rand(10)*100+100,2).tolist();
print('--------------------排序前---------------------');
print(l1); ############
print('--------------------排序后---------------------');
l2 = quick(l1);
print(l2); ###########
测试结果是否OK:
下面对这三种排序算法按照排序容量从1到900进行测试性能:
import numpy as np;
import matplotlib.pyplot as plt;
from time import time;
from bubblesort import bbsort2 as bbsort;
from insert_sort import ISsort;
from quick_sort import quick;
if __name__ == '__main__':
tt1 = [];
tt2 = [];
tt3 = [];
x = [i for i in range(1,900,3)];
for j in range(1,900,3):
height = np.round(np.random.rand(j)*100+100,2).tolist();
t1 = time();
height_new = bbsort(height);
t2 = time();
height = np.round(np.random.rand(j)*100+100,2).tolist();
t3 = time();
height_new2 = ISsort(height);
t4 = time();
height = np.round(np.random.rand(j)*100+100,2).tolist();
t5 = time();
height_new3 = quick(height);
t6 = time();
tt1.append(t2-t1);
tt2.append(t4-t3);
tt3.append(t6-t5);
plt.plot(x,tt1,'r--',label='bubble');
plt.plot(x,tt2,'b--',label='Isert');
plt.plot(x,tt3,'g--',label='quick');
plt.xlabel('length of list/k');
plt.ylabel('time/s');
plt.legend(loc = 'upper left');
plt.show();