首页 > 编程语言 > 详细

归并排序 VS 选择排序

时间:2020-04-17 22:30:06      阅读:77      评论:0      收藏:0      [点我收藏+]
import time, random

def random_List(start, end, length):
    random_array = []
    for i in range(0, length):
        random_array.append(random.randint(start, end))
    return  random_array

def merge_sort(arrayList):
    n = len(arrayList)
    if n <= 1:
        return arrayList
    mid = n // 2
    left_array = merge_sort(arrayList[:mid])
    right_array = merge_sort(arrayList[mid:])

    left, right = 0, 0
    newList = []
    while left < len(left_array) and right < len(right_array):
        if left_array[left] < right_array[right]:
            newList.append(left_array[left])
            left += 1
        else:
            newList.append(right_array[right])
            right += 1
    newList += left_array[left:]
    newList += right_array[right:]
    return newList


def select_sort(arrayList):
    for i in range(0, len(arrayList)):
        min = i
        for j in range(i, len(arrayList) - 1):
            if arrayList[j] < arrayList[min]:
                min = j
        arrayList[min], arrayList[i] = arrayList[i], arrayList[min]
    return  arrayList

if __name__ == "__main__":
    array = random_List(1, 100, 10000)
    print(array)
    start_time = time.time()
    result = merge_sort(array)
    ex_time = time.time() - start_time
    print(ex_time)
    print(result)
    print(‘--------------------‘)
    print(array)
    start_time = time.time()
    result = select_sort(array)
    ex_time = time.time() - start_time
    print(ex_time)
    print(result)

数组长度为10000, 来看看执行 的结果吧

技术分享图片
看来作为选择排序PLUS的 归并排序确实很快

归并排序 VS 选择排序

原文:https://www.cnblogs.com/jackson1/p/12722820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!