
数据结构
会飞的猩猩。
这个作者很懒,什么都没留下…
展开
-
堆排序
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子该数组从逻辑上讲就是一个堆结构,我们用简单的公式来描述一下堆的定义就是:转载 2020-12-15 14:22:23 · 461 阅读 · 0 评论 -
归并排序
归并排序采用分治的思想,同时,它和冒泡排序一样也是稳定排序,不会处理相同元素。def orders(ls1,ls2):### 对两个分块进行排序合并 ls = [] length1 = len(ls1) length2 = len(ls2) s1 = 0 s2 = 0 while s1<length1 and s2<length2: if ls1[s1] < ls2[s2]: ls.append(ls1[s1]) s1 += 1 else: .原创 2020-12-11 15:59:32 · 202 阅读 · 0 评论 -
给大家推荐一门浙江大学的免费数据结构公开课
数据结构https://www.icourse163.org/course/ZJU-93001原创 2020-03-20 16:17:09 · 604 阅读 · 3 评论 -
冒泡排序
冒泡排序应该算是排序算法中最简单的一个了。它会进行多轮排序,每一轮排序会比较相邻元素的大小,然后根据需求交换相邻元素。冒泡排序是一个稳定的排序,这里稳定的意思是两个大小相同的数字在排序前后,它们之间的相对位置不变。因为当两个元素相等时,冒泡排序不会采取任何措施,所以不会改变相等元素之间的相对位置。下面是对序列[1, 4, 3, 2]排序的例子:第1轮:[1, 4, 3, 2][1, 3...原创 2018-12-27 17:12:14 · 358 阅读 · 0 评论 -
两种快速排序解析--python
快速排序的主要思想就是分而治之,递归将序列用主元分为两个子序列然后排序.根据维基百科的描述,快速排序有两种:第一种是由Lomuto提出的, 为in-place交换;将序列最后一个元素选为主元。两个扫描标签从左边开始,当array[ j ]大于主元时,j继续扫描;当array[j ]小于主元时,交换array[ i+1 ]和array[ j ].首先,主元为最后一个元素 4,a...原创 2018-11-09 13:30:22 · 768 阅读 · 0 评论