Python实现八大经典排序算法左神版

本文作者尝试使用Python实现包括BucketSort、BubbleSort、InsertionSort、RadixSort、MergeSort、QuickSort、HeapSort等八大经典排序算法,代码灵感来源于左神。文章侧重于代码展示,后续将补充各算法的时间复杂度、空间复杂度及稳定性分析。
摘要由CSDN通过智能技术生成

前言

近期试图用python复现一些由Java和C++编写的经典算法,本以为可以很快搞定,未曾想实际操作起来竟是举步维艰,这让本人切身感受到了python让人头痛的难以移植的属性,也切实体会到了自身能力的不足,于是决定尝试一种新的方式来促进自己进步。想来自己也在CSDN混迹多年了,从电气到IT,从硬件到软件,至今未写过一篇博客,觉得甚是惭愧。今天姑且就开一个头,以后定期在这里总结自己的收获,以输出来促进输入。作为算法第一课,我将这篇博客内容确定为用python对各大经典排序算法进行复现,代码思想主要以左神算法为主,站在巨人的肩膀上才能更快的成长。

本文以codes为主,并带有部分注解,目前尚未完善,我将后续更新各大排序算法的空间复杂度、时间复杂度的分析,以及稳定性分析。废话不多说,上codes。

CODES

BucketSort:

def bucketsort(arr):
    if not arr or len(arr) < 2:
        return
#   value is integer type and belong to [0,200]
    max_value = sys.float_info.min
    for i in range(len(arr)):
        max_value = max(max_value, arr[i])
    help_arr = [0 for i in range(max_value+1)]
    for i in range(len(arr)):
        help_arr[arr[i]] += 1
    del arr[:]
    for i in range(len(help_arr)):
        while help_arr[i]:
            arr.append(i)
            help_arr[i] -= 1

BubbleSort:

def bubble_sort(arr0):
    if not arr0 or len(arr0) < 2:
        return
    for i in reversed(range(len(arr0))):
        for j in range(i):
            if arr0[j] > arr0[j+1]:
                arr0[j], arr0[j+1] =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值