冒泡、插入、快速排序性能对比

冒泡、插入排序代码见:

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

测试结果是否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();

冒泡、插入、快速排序性能对比_第1张图片

你可能感兴趣的:(冒泡、插入、快速排序性能对比)