![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Data Structure and Algorithm
我是小将
Make your hands dirty!
展开
-
排序算法
排序算法排序是最基本的算法之一,常见的排序算法有插入排序、希尔排序、选择排序、冒泡排序、堆排序、归并排序及快速排序。每个排序算法的时间复杂度是不同的,但是最优的时间复杂度是O(NlogN)。有些排序算法是原址排序(即不需要额外空间),也有一些是非原址排序,这也是需要注意的特点。同样地,还要注意排序算法是否是稳定排序,这有时候很重要。这篇文章简单地介绍各个排序算法的思想,然后使用C++实现各个排序算法原创 2017-04-16 19:11:56 · 927 阅读 · 0 评论 -
动态规划
动态规划对很多问题,动态规划(Dynamic Programming)是个强有力的武器,因为大部分情况下它可以大大降低算法的时间复杂度。动态规划的一个重要的应用是在满足最优性原理的优化问题,所谓最优性原理指的是问题的一个最优解总是包含子问题的最优解,但这并不是说所有子问题的最优解都对最终解做贡献。动态规划与分治法(Divide-and-Conquer)策略比较类似,都是将一个问题分解成子问题,但是分原创 2017-04-19 19:12:37 · 1241 阅读 · 0 评论