Python 排序1

冒泡排序(buble sort)

import time
from random import randint
import matplotlib.pyplot as plt
%matplotlib inline  

def _bubble_sort(nums:list,reverse = False):
    start = time.time()
    for i in range(len(nums)):
        for j in range(len(nums) - i - 1):
            if(nums[j] > nums[j + 1]):
                nums[j], nums[j + 1] = nums[j + 1], nums[j]
    if reverse:
        nums.reverse()
    t = time.time() - start
    return len(nums),t

#*************************************
def generate_random_array(n):
    return [randint(0, n) for e in range(n)]

#*************************************
random_lists = [generate_random_array(100 * n) for n in range(1, 20)]
rst = [_bubble_sort(l) for l in random_lists]
rst

#*************************************
x = list(zip(*rst))[0]
y = list(zip(*rst))[1]
plt.plot(x,y)

选择排序(selection sort)

def selection_sort(arr):
    start = time.time()
    for i in range (len(arr)):
        pos_min = i
        for j in range (i+1,len(arr)):
            if(arr[j] < arr[pos_min]):
                pos_min = j
        arr[i], arr[pos_min] = arr[pos_min], arr[i]
    t = time.time() - start
    return len(arr),t

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值