当前位置:   article > 正文

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

左神算法python版的

前言

近期试图用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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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] =
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/374392
推荐阅读
相关标签
  

闽ICP备14008679号