python排序实现及性能分析

我自己主要工作为后台开发,所以算法使用不多,最近在看到https://visualgo.net/en网站关于排序算法的动态实现,自己尝试用python实现各类算法,代码如下



  

#coding:utf8
from random import randint
import random
import numpy as np
def create_list(lens):
    return [randint(0,10000) for i in range(lens)]
def bubble_sort(nums):
    lens  = len(nums)
    count = 0
    for j in range(lens):
        count += 1
        for i in range(lens-count):
            if nums[i] > nums[i+1]:
                nums[i],nums[i+1] = nums[i+1],nums[i]
    return nums

def select_sort(nums):
    lens = len(nums)
    count = -1
    for i in range(1,lens):
        count += 1
        for j in range(count,lens):
            if nums[count] > nums[j]:
                nums[count],nums[j] = nums[j],nums[count]
    return nums

def insert_sort(nums):
    lens = len(nums)
    count = 0
    for i in range(lens):
        count += 1
        for j in range(count,lens):
            if nums[j] < nums[i]:
                nums[j],nums[i]=nums[i],nums[j]
    return nums

def merge_sort(nums):
    lens = len(nums)
    count = lens
    n = 2
    def sort_two_list(list1,list2):
        len1 = len(list1)
        len2 = len(list2)
        list3 = []
        i,j=0,0
        while i<len1 and j<len2:
            if list1[i] < list2[j]:
                list3.append(list1[i])
                i += 1
            else:
                list3.append(list2[j])
                j += 1
        list3 += list1[i:]
        list3 += list2[j:]
        return list3
    for i in range(0,lens-1,2):
        if nums[i] > nums[i+1]:
            nums[i],nums[i+1] = nums[i+1],nums[i]
    while  n<=lens:
        list3 = []
        for j in range(0,lens,2*n):
            list3 +
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值