![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法是一种技术
nkakaxi
这个作者很懒,什么都没留下…
展开
-
Sort summary
排序的广泛使用使得研究排序算法成为算法的入门案例,本文主要罗列比较排序以及非比较排序(带限制的数据)的常用方法(默认从小到大)。 1, bubble,“冒泡”还是蛮形象的,每一轮中最终获得了当前数组中的最大值,而最大值的获取就是通过与邻近元素的比较逐步上升的。如果你对算法不了解,让你自己去排序一组数,那最直观的就是我每次拿到最大数保存,然后从余下的数中再递归找最大,所以bubble类似于sel原创 2017-06-15 22:18:44 · 248 阅读 · 0 评论 -
Sort summary2
一旦跳出了“排序就比较”这个思维,那我们就有可能实现更低的复杂度,当然代价就是对输入的数据有一定的限制。1,count 限制条件就是元素的数值在(0,k), 最好不要出现负数(虽然有些也是可以解决),值不要太大(具体就是值的跨度不要太大),基本思路就是开辟K个空间,统计数组中小于i(0原创 2017-06-15 23:33:58 · 233 阅读 · 0 评论 -
Order statistics
描述: 寻找一个数组中第i 小的元素很容易联想到最小值问题,O(n)内解决,但好像无法直接应用,这时最直观的就是先排序,再查找O(nlgn), 仔细想来,一旦完成排序意味者所有的元素都可以找到,而我们只需要寻找一个(常数个),显然解决方案是一个“更加泛型”的算法,这样就会出现“杀鸡用了牛刀—大材小用”,如果改用“鸡刀”显然复杂度会有所降低。 如何降低呢?与排序算法一样,就是减少不必要的比较原创 2017-06-16 11:20:39 · 2564 阅读 · 0 评论 -
max sub array
题外话,写“算法是一门技术”系列主要是感觉自己对算法背后的东西没有一个统一的认识,应该是功力尚浅,本系列大致计划是按照《算法导论》第三版的每个大的专题顺序进行撰写,记录些许自己的理解(所以会比较凌乱),不当之处,欢迎指正。1,最直观的想法就是暴力,最终需要找到一个最大子序列,即数组A中的两个索引 i, j. 计算每个以i开头的子序列的最大值,然后比较每个max_sub_sum[i]即可。 2,di原创 2017-06-09 16:25:37 · 708 阅读 · 0 评论