算法
幻欢子
湘地生,癸酉诞,好诗书,喜乐理。
展开
-
冒泡排序及优化
目录一、思路二、普通写法三、模板写法四、优化一五、优化二六、优化三冒泡排序:(无序区,有序区)。从无序区通过交换找出最大元素放到有序区前端。一、思路1、比较相邻元素,如果第一个比第二个大,交换他们。2、对每一对相邻元素做同样操作,从开始第一对倒最后一对。这步做完后,最后的元素是最大的。3、针对所有元素重复以上步骤,除了最后一个。4、持续每次对越...原创 2019-05-16 20:58:51 · 301 阅读 · 0 评论 -
选择排序及优化
目录一、普通实现二、模板实现三、优化版本一四、优化版本二 和冒泡排序区别:冒泡排序是逐步对相邻元素进行操作(比较和交换位置)。而选择排序是从待排序数列中选择最大/小值,再将之放置到已排序数列中。 (有序区,无序区)。在无序区里找一个最小的元素跟在有序区后面。对数组:比较的多,换的少。选择排序思路:1、在未排序序列中找到最小(大)元素,...原创 2019-05-16 22:21:36 · 2917 阅读 · 0 评论 -
插入排序及优化
目录一、普通做法二、优化版本一三、优化版本二思路:1、将待排序序列第一个元素看作一个有序序列,把第二个元素到最后一个元素当成是未排序序列。2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素后面)一、普通做法void InsertSort(vect...原创 2019-05-16 22:43:21 · 805 阅读 · 0 评论 -
快速排序
目录思路:一、普通版本二、简洁版本思路:1、从数列中挑出一个元素,称为“基准”(pivot)。2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准大的摆在基准后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。3、递归(recursive)的把小基准值元素的子数列和大于基准值的子数列排序。...原创 2019-05-17 21:28:52 · 143 阅读 · 0 评论 -
计数排序
目录一、基本思路二、代码实现一、基本思路 给定一个数组,先统计各个元素出现的次数,用元素的值做下标,得到一个新的数组。然后扫描这个数组,对于数组的每个下标,如果它对应值不为0,说明元来数组中就有几个这样的值。由于下标的天然递增,依次将这些值展开就得到排序后的数组。 但是计数排序有它的局限性,首先如果想用数组统计各个元素出现的次数,它的值必须是正整数。如果你想用...原创 2019-05-17 22:04:58 · 970 阅读 · 0 评论 -
vector实现归并排序并分析耗时
目录一、概述二、代码分析三、耗时分析四、复杂度及稳定性分析一、概述归并排序图示分析(百度百科找的一张图)思想:归并排序(Merging Sort)利用归并思想实现的排序算法,原理是:假定初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两合并,得到 n/2个长度为2或1的有序子序列;然后再两两合并,……,如此重复,直至...原创 2019-08-31 00:54:25 · 957 阅读 · 0 评论 -
C++实现桶排序
一、概述桶排序的算法思想:是将阵列分到有限数量的桶子里。每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是比较排序,他不受到 O(n log n) 下限的影响。简单来说,就是把数据分组,放在一个个的桶中,然后对每个桶里面的在进行排序。(桶本...原创 2019-08-31 15:06:19 · 2765 阅读 · 2 评论 -
C++基数排序
目录一、概述二、代码三、程序运行情况一、概述1、基本思想(沿袭自桶排序):从低位开始,对所有数字进行排序。例如第1轮排序后,数字的个位数要有序;第2轮排序后,数字的十位数要有序,如果十位数相同的数,个位数要按照之前的相对顺序摆放;依次类推直至最高位排序完成。过程如下图:二、代码C++利用vector实现/*======================...原创 2019-08-31 17:20:04 · 1393 阅读 · 3 评论 -
求子数组最大连续和(考虑全为负数)
题目形式:给定一个数组,求其最大连续子数组和。(扩展题型还要求指出起始位置)例如:arr = [1, 5, -10, 2, 5, -3, 2, 6, -3, 1]。输出为:12。对应的连续子数组为[2, 5, -3, 2, 6]。代码:注意点:1、考虑全为负数情况。2、有很多博文代码跑出来结果健壮性不够,此处有点到问题所在和临时解决办法。3、建议先从只求最大连续和版本看,此...原创 2019-09-02 01:44:39 · 358 阅读 · 0 评论