随笔分类 -  排序

摘要:交换排序 交换排序有冒泡排序和快速排序 冒泡排序 冒泡排序就是每次找出最大(最小)元素,放在集合最前或最后,这是最简单的排序算法 def bubble_sort(collection): #升序排列 length=len(collection) for s in range(length-1):#可 阅读全文
posted @ 2021-08-11 18:48 凌晨四点的蓝 阅读(99) 评论(0) 推荐(0)
摘要:算法思想 基数排序通过按位比较(一般从最低位开始)将元素按照最低位的数放到10个桶中,当所有的元素都这样被处理一次后,在按从0到9的顺序将每个桶的元素再取出来(不关注其他位的,只关注当前位的)这样就完成了所有元素最低位的有序性,然后不断的重复上面的步骤,知道所有元素的最高位都经过处理了。 算法步骤 阅读全文
posted @ 2019-08-23 20:20 凌晨四点的蓝 阅读(516) 评论(0) 推荐(0)
摘要:算法思想 : 堆排序利用堆数据结构设计的一种排序算法,堆是一种近似完全二叉树的结构,同时满足堆积的性质,即对于任意的i均有ki>=k(2i+1),ki>=k(2i+2) 步骤: 将数组转化为最大堆 将当前堆的根结点和最后一个结点交换,然后将前n-1个元素转化为最大堆 重复上一过程 为什么要是最大堆呢 阅读全文
posted @ 2019-07-16 12:48 凌晨四点的蓝 阅读(481) 评论(0) 推荐(0)
摘要:算法思想: 桶排序将数组分到有限数量的桶里。然后每个桶里再分别排序(使用任何算法) 当要倍排序的数组内的数值时均匀分配的时候,桶排序使用线性时间O(n) 步骤: 根据最大值、最小值、桶内数据范围设定一定数量的数组当桶,可以拿二维数组 遍历数据,将数据放到对应的桶中 对桶内数据进行排序(可以和上一步结 阅读全文
posted @ 2019-07-15 11:18 凌晨四点的蓝 阅读(442) 评论(0) 推荐(0)
摘要:冒泡排序: 冒泡排序就是每次找出最大(最小)元素,放在集合最前或最后,这是最简单的排序算法 特点:是稳定的 T(n)=O(n^2) 原地排序 内层循环的操作是O(1)的,共执行n-1轮循环,每轮分别执行(n-1,n-2....1)=(n-1)(n-1+1)/2 双向冒泡排序: 双向冒泡排序又称为:鸡 阅读全文
posted @ 2019-07-14 21:08 凌晨四点的蓝 阅读(1331) 评论(0) 推荐(0)
摘要:算法思想: 首先从序列中选择一个最值,将这个元素和序列的首地址上的元素交换,这样就完成了一个元素的排序,接下来,重复上述过程,不断的从剩下的序列中选取最值,然后添加到有序部分的末尾(注意,这种添加是通过和未排序序列的第一个元素交换来实现的。 选择排序每次交换一队元素,他们当中至少有一个元素被移动到了 阅读全文
posted @ 2019-07-12 12:25 凌晨四点的蓝 阅读(337) 评论(0) 推荐(0)
摘要:算法思想 迭代法: 归并算法一共有两种思想,笼统的说,这两种思想的区别就在于一种不分割未排序的序列(直接将序列看为n个个数为1的子序列),这种称为 迭代法 直接从队头开始,两两合并为一个个数为2的子序列,一共有ceil(n/2)个,最后一个为2或者1, 接下来,以上面的结果开始,若序列个数不是1,将 阅读全文
posted @ 2019-07-12 10:43 凌晨四点的蓝 阅读(336) 评论(0) 推荐(0)
摘要:希尔排序是插入排序的升级版,先来了解插入排序 插入排序 算法思想: 插入排序再面对几乎已经有序的数据效率非常高,可以达到线性排序的效率 将数组元素插入已经有序的部分中,具体的过程是在有序的部分中通过比较找到新插入元素应该插入的位置,然后从有序部分的队尾元素开始,统统向后移动一位(这一位原本是刚刚那个 阅读全文
posted @ 2019-07-11 13:52 凌晨四点的蓝 阅读(327) 评论(0) 推荐(0)
摘要:算法的复杂度 参考链接:https://blog.csdn.net/itachi85/article/details/54882603 算法的复杂度主要分为时间复杂度和空间复杂度,时间复杂度评估算法的运行时间,体现对处理器的使用程度。空间复杂度评估算法所需要的运行内存,体现对计算机内存的使用程度。 阅读全文
posted @ 2019-07-10 08:41 凌晨四点的蓝 阅读(769) 评论(0) 推荐(0)
摘要:参考链接:https://blog.csdn.net/u014281392/article/details/79120406 所描述的图的结构为: 下面介绍不同的储存方式,我想不必详细分别是每个名称都是那种数据来存储的,或是一种,或是两种的组合,这不是再通用的规定约束而来的结果,只是列举了一些灵活的 阅读全文
posted @ 2019-07-08 15:31 凌晨四点的蓝 阅读(3385) 评论(0) 推荐(0)
摘要:海量数据 海量数据 一年的全国高考考生人数为500 万,分数使用标准分,最低100 ,最高900 ,没有小数,要求对这500 万元素的数组进行排序。 分析:对500W数据排序,如果基于比较的先进排序,平均比较次数为O(5000000*log5000000)≈1.112亿。但是我们发现,这些数据都有特 阅读全文
posted @ 2019-07-03 17:12 凌晨四点的蓝 阅读(829) 评论(0) 推荐(0)
摘要:插入排序从前往后遍历数组的每一个元素,对每一位元素都将其插入到已经有序的部分数组中,所以插入排序的要点就是找出要插入元素在已经有序的部分中的位置,同时,由于插入排序采用原地排序(in-place)算法,需要将有序部分中为这个元素腾出位置,采用的办法是将有序部分中的从找到的位置之后的所有元素都向后移动 阅读全文
posted @ 2019-06-20 18:56 凌晨四点的蓝 阅读(323) 评论(0) 推荐(0)
摘要:关键字参数 阅读全文
posted @ 2019-03-01 11:02 凌晨四点的蓝 阅读(378) 评论(0) 推荐(0)