![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
鑫~仔
这个作者很懒,什么都没留下…
展开
-
归并排序
文章目录归并排序介绍步骤代码实现分析时间复杂度空间复杂度稳定性归并排序介绍假定待排序表含有n个记录,则可以看成是n个有序的子表,每个子表长度为1,然后两两归并,得到 ⌈n/2⌉个长度为2或1的有序表;再两两归并,……如此重复,直到合并成一个长度为n的有序表为止,这种排序方法称为2-路归并排序步骤49 38 65 97 76 13 27首先将整个序列的每个关键字看成一个单独的有序的子...原创 2019-07-08 20:43:27 · 123 阅读 · 0 评论 -
希尔排序
文章目录希尔排序简介基本步骤希尔排序的优势代码实现总结希尔排序简介希尔排序又称为缩小增量排序希尔排序的基本思想:希尔排序本质上还是插入排序,只不过是把待排序序列分成几个子序列(按照一定增量:一组元素中下标的差值),再分别对这几个子序列进行直接插入排序基本步骤希尔排序首先选择一个元素选择步长将数组划分为若干小组,对各个小组分别进行排序,然后不断将步长缩小,不断分组和排序,...原创 2019-07-07 12:19:37 · 158 阅读 · 0 评论 -
堆排序
文章目录堆排序打印树代码实现核心算法-堆结点的调整完整代码总结堆排序打印树居中对齐方案import mathdef print_tree(array, unit_width=2): length = len(array) depth = math.ceil(math.log2(length + 1))# 树的深度 index = 0 width = 2...原创 2019-07-06 16:06:02 · 107 阅读 · 0 评论 -
二分
文章目录二分代码实现总结二分代码实现在有序的序列中插入数值,完成插入后的序列保证其有序def insert_sort(orderlist, i): ret = orderlist[:] low = 0 hight = len(ret)#去掉减一,不影响整除2 while low < hight: mid = (low + hight) ...原创 2019-07-05 20:39:19 · 147 阅读 · 0 评论 -
直接插入排序
文章目录直接插入排序直接插入排序原理动画演示代码实现总结稳定排序算法直接插入排序直接插入排序原理在未排序的序列中构建一个子排序序列,直到全部数据排序完成将待排序的数,插入到已经排序的序列中合适的位置增加一个哨兵, 放入带比较的值, 让它和已经排好的序列比较, 找到合适的插入点动画演示link.代码实现```nums = [0] + [2,3,4,5,6,7,8]leng...原创 2019-07-05 12:54:25 · 141 阅读 · 0 评论 -
选择排序
选择排序属于选择排序两两比较大小, 找出极值放在固定的位置(某一端)结果分为升序和降序降序n个数,从左到右索引0到n-1, 两两一次比较,记录最大值索引,此轮比较结束后将最大值和索引为0的数交换, 如果最大数是索引0,则不交换第二轮从索引1开始,同理,每次左边都会固定下一个数升序和降序相反简介 &n...原创 2019-07-05 11:51:58 · 200 阅读 · 0 评论 -
冒泡排序
冒泡法冒泡法属于交换排序;两两比较大小,交换位置,如同冒泡,故称冒泡排序;结果分为升序和降序;升序n个数,从左到右,依次两两比较,按双方比较结果决定是否交换位置第一轮从0到n-1, 第二轮从0到n-2,每轮比较都产生一个该轮比较的最大值,并将其置于最右侧;降序和升序相反;冒泡排序的实现num_list = [2,4,5,6,7,1,3]le...原创 2019-07-05 11:44:42 · 161 阅读 · 0 评论 -
基数排序
文章目录基数排序分析LSDMSDLSDMSD总结基数排序基数排序(也叫桶排序)是一种很特别的排序方法,它不是基于比较进行排序的,而是采用多关键字排序思想(即基于关键字各位的大小进行排序的),借助“分配”和“收集”两种操作对单逻辑关键字进行排序。基数排序又分为最高位优先(MSD)排序和最低位优先(LSD)排序分析LSDMSD#代码实现LSD```from random impo...原创 2019-07-09 19:33:48 · 159 阅读 · 0 评论 -
快速排序
文章目录快速排序简介分治法基本步骤代码实现总结分析时间复杂度空间复杂度稳定性快速排序简介快速排序是一种基于分治法的排序方法,交换类排序每一趟快排选择序列中任何一个元素作为枢轴(pivot)(通常选择第一个元素), 将序列中比枢轴小的元素都移动到枢轴前面, 比枢轴大的元素都移动到枢轴的后边分治法第一步首先将原问题分解成若干个子问题, 这个子问题只是原问题较小规模的实例将解决这些子...原创 2019-07-07 13:34:53 · 173 阅读 · 0 评论