![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
简单算法
madujin
这个作者很懒,什么都没留下…
展开
-
链表的归并排序
归并排序,是一种效率较高的排序,和快速排序、希尔排序、堆排序等时间复杂度一样为O(nlog n),且它是一种稳定的排序。 大体思想是先归,把数据分组,比较之后再并。这种重复的分、和,十分适用递归的思想。 例子,4,3,6,2,8,3,0 1. 将4,3,6,2分为一组,8,3,0分为一组 2.继续分 4,3 ; 6,2 ; 8,3 ; 0 3原创 2017-02-24 16:59:28 · 308 阅读 · 0 评论 -
单链表之快速排序
快速排序的时间复杂度为O(n logn)。 快排依次把每个区间的第一个元素放在“合适”的位置,这个位置的特征是左边元素都比它小,右边都不小于它。 再用这个元素划分区间,直到区间不能划分。 这种思路适用递归。 先上一个数组的快排#include using namespace std; int quickSort(int *a,int left,int right){ if(left原创 2017-02-27 15:14:43 · 766 阅读 · 0 评论 -
动态规划 入门篇(一)
入门篇(一) 在入门篇(一),简单介绍一部分概念,重点是在例子上,在题目中体会动态规划尤为重要。 一、概念 动态规划(DP)是求最优解的一种常用解法,但是理解起来还是有点麻烦。 首先来讲讲几个概念: 1.状态:将求解过程细化的一种表示,通常是一个数组,也有可能是一个序列。 2.无后效性:当前状态只受前面状态的影响,不受未发生状态的影响。如,用某...原创 2017-05-02 20:00:35 · 507 阅读 · 0 评论 -
浅析模拟退火
在求最优解的时候常常会提到模拟退火。 什么是模拟退火呢? 其实很简单,在普通的贪心求解过程中,常常陷入局部最优解,如求01背包问题的时候,直接用贪心,很可能得不到最优解。 在模拟退火算法中,会根据一定的概率跳出局部最优解,而这个一定的概率就是根据metropolis而来。metropolis是物理中退火过程,感兴趣的可以自行查找。用公式表示为: 可以看到,在公式中,当前值优于之前的目前最优值原创 2017-07-17 16:54:29 · 372 阅读 · 0 评论