![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
King逍灬遥
这个作者很懒,什么都没留下…
展开
-
C++归并排序
C++归并排序归并排序是建立在归并操作基础上的一种有效的排序算法,采用分治的思想,将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表。称为二路归并,归并排序是稳定排序。归并操作,指是将两顺序序列合并成一个顺序序列的方法。如:设有数列{6,202,100,301,38,8,1}初始状态:6,202,100,301,38,...原创 2019-12-16 15:23:53 · 302 阅读 · 0 评论 -
C++桶排序
C++桶排序一、桶排序桶排序,首先要知道所以带排序数值的范围,然后需要有在这个范围的同样数量的桶,接着把元素放到对应的桶中,最后按顺序输出。桶排序是准备不同的桶,将数据分别放进桶里,假如需要100W数据的话,那么需要准备100W个桶,时间很快,但是空间复杂度很大,耗费内存的缺点。二、桶排序的实现假如有n个数据,定义n个桶,把没个数据分别放入每个桶中,将桶位置的数组进行+1,最终...原创 2019-12-15 10:55:55 · 1305 阅读 · 0 评论 -
C++简单选择排序
C++简单选择排序给定要排序的一组数中,选出最大(或者最小)的一个数与第一个位置的数进行交换,然后在剩下的数当中再找最大(最小0)的与第二个位置的数进行交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个元素)比较为止。例如:开始:1 3 5 7 9 0 2 4 6 8①0 3 5 7 9 1 2 4 6 8②0 1 5 7 9 3 2 4 6 8③0 ...原创 2019-12-10 15:11:23 · 287 阅读 · 0 评论 -
C++希尔排序
C++希尔排序希尔排序(缩小增量排序)是把记录按下标的一定增量分组,对每组使用直接插入算法排序,随着增量逐渐减小,每组包含的关键词越来越多,当增量减至1时候,整个文件恰恰分成一组,便排序完成。希尔排序是非稳定排序算法。希尔排序基于插入排序的性质而改进的:1.插入排序在对几乎已经排序好的数据操作时,效率高,即可达到线性排序的效率。2.但插入排序每次只能将数据移动一个位置,所以一般还是...原创 2019-12-08 11:44:20 · 215 阅读 · 0 评论 -
C++插入排序
C++插入排序插入排序思想:将数组分成两组,第一个数组值为一组并认为该数组为有序的,并从后面数组n-1个数中逐个选择与已经有序的数组进行比较,插入到已经排序好的数组中,直至数组中的所有数组有序排列为止。这样的话,n个元素需要进行n-1趟排序!!!数组A[]={2,1,4,5,3,8,7,9,0,6},length=10;i=1,j=0,a[j+1]=1<a[j]=2,故交换a[...原创 2019-12-07 13:25:05 · 356 阅读 · 0 评论 -
C++快速排序
C++快速排序通过一趟排序将要排序的数据分割成两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此步骤对这两部分的数据进行快速排序,整个排序的过程可以使用递归进行。以此达到整个数据变成有序序列。快速排序通过多次比较和多次交换来实现排序,排序历程:(1)首先设定一个分界值,通过该分界值将数组分成左右两部分(一般分界值为第一个)(2)将大于或等于分界值的数据集中到数组...转载 2019-12-06 17:45:26 · 2210 阅读 · 0 评论 -
C++冒泡排序
C++冒泡排序冒泡排序重复地走访过要排序的元素列,依次比较两个相邻元素的大小,从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。基本思想:(1)将两两比较相邻元素A(i)和A(i+1)(i=1,2,3,....N-1),如果A(i)>A(i+1),则交换...原创 2019-12-04 13:49:04 · 246 阅读 · 0 评论 -
五大常用算法之动态规划
五大常用算法之动态规划 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不像搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。因此读者...原创 2019-11-10 18:54:37 · 917 阅读 · 0 评论 -
五大常用算法之贪心算法
五大常用算法之贪心算法贪心算法(贪婪算法)指的是:在对问题求解过程中,总是做出在当前看来是最好的选择。不从整体最优上加以考虑,所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心选择 贪心选择是指所求问题整天最优解可以通过一系列...原创 2019-10-31 22:26:40 · 834 阅读 · 0 评论 -
五大常用算法之分治法
五大常用算法之分治法一、分治法主要思想:当要处理的数据非常多的时候,可以将众多问题先分解成几个小问题,找到求出这几个小问题的方法之后,再找到合适的方法,将子问题解组合成求整个问题的解法。按照这个思想,如果子问题还是很大的时候,继续将子问题分成更小的子子问题,来进行求解,以此类推,直至可以直接将解求出为止。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶...原创 2019-10-27 16:19:02 · 1207 阅读 · 0 评论