随笔分类 -  Algorithm

算法学习
摘要:快排 int partition(vector<int>& nums, int start, int end) { int tmp = nums[start]; int i = start, j = end; while (i < j) { while (i < j && nums[j] >= tm 阅读全文
posted @ 2021-09-13 09:48 nullxjx 阅读(80) 评论(0) 推荐(0)
摘要:直接插入排序适用于基本有序的排序表和数据量不大的排序表。 希尔排序(Shell)又叫缩小增量排序 基本思想如下: -设待排序列有n个元素,取一整数gap(gap<n)作为间隔,将全部元素分为gap个子序列,所有距离为gap的元素放在同一个子序列中-在每一个子序列中分别采用直接插入排序-然后缩小间隔g 阅读全文
posted @ 2018-07-26 08:59 nullxjx 阅读(576) 评论(0) 推荐(0)
摘要:问题描述: 输入是由一个随机过程产生的[0, 1)区间上均匀分布的实数。将区间[0, 1)划分为n个大小相等的子区间(桶),每桶大小1/n:[0, 1/n), [1/n, 2/n), [2/n, 3/n),…,[k/n, (k+1)/n ),…将n个输入元素分配到这些桶中,对桶中元素进行排序,注意, 阅读全文
posted @ 2018-01-14 18:57 nullxjx 阅读(1097) 评论(0) 推荐(0)
摘要:思路参考《算法导论》P110 另外,这位老哥讲的很不错:http://www.cnblogs.com/kkun/archive/2011/11/23/2260275.html 代码 运行结果如下: 阅读全文
posted @ 2018-01-14 15:40 nullxjx 阅读(855) 评论(0) 推荐(0)
摘要:任何比较排序(归并排序,插入排序等等)的时间复杂度在最坏的情况下都需要做Ω(n * lgn)次比较,而这里的的计数排序由于它不是基于比较排序的思路,所以它的复杂度不收这个限制,它的时间复杂度为Θ(n),为线性时间。同时,计数排序一个重要的性质就是它是稳定的,也就是说,对于两个相同的数来说,在输入数组 阅读全文
posted @ 2018-01-14 14:21 nullxjx 阅读(550) 评论(0) 推荐(0)
摘要:思路参考《算法导论》P95 这里有位老哥的文章写的挺形象的呀 http://developer.51cto.com/art/201403/430986.htm 我是参照书上实现的,觉得挺简单的 代码 运行结果: 阅读全文
posted @ 2018-01-13 22:31 nullxjx 阅读(409) 评论(0) 推荐(0)
摘要:这个没啥好说的,写完上一个正好写一下这一个,都是基于堆实现的,不过这里没有用C++内置数组,原因是添加删除元素有点麻烦,所以用了vector来实现。 详细内容见《算法导论》P90 代码 1 // 基于最大堆实现最大优先队列.cpp: 定义控制台应用程序的入口点。 2 // 3 4 #include 阅读全文
posted @ 2018-01-13 21:15 nullxjx 阅读(674) 评论(0) 推荐(0)
摘要:思路参考《算法导论》P84 堆排序中用到的最重要的就是堆这种数据结构,也正是因为这种数据结构能把时间复杂度控制在O(n * lgn) heapsort算法主要依赖于两个函数 MAX_HEAPIFY(int *A,int i,int len) 用于维护最大堆,时间复杂度为O(lgn),注意书上描述这个 阅读全文
posted @ 2018-01-13 16:10 nullxjx 阅读(484) 评论(0) 推荐(0)
摘要:最近在看《算法导论》,刚看到分治策略里的最大子数组问题,觉得这个写的不错,记录在这里,方便自己以后复习。 问题描述见《算法导论》P38 原文地址:https://www.cnblogs.com/Christal-R/p/Christal_R.html 代码如下: 运行结果如下: 阅读全文
posted @ 2018-01-12 12:41 nullxjx 阅读(465) 评论(0) 推荐(0)
摘要:思路参考: 《算法导论》第三版P17 代码如下: 阅读全文
posted @ 2017-10-28 19:31 nullxjx 阅读(853) 评论(0) 推荐(0)
摘要:思路参考: 《算法导论》第三版P10 代码: 阅读全文
posted @ 2017-10-28 14:30 nullxjx 阅读(1326) 评论(0) 推荐(0)
摘要:思路参考: http://www.cnblogs.com/kkun/archive/2011/11/23/2260281.html 代码如下: 阅读全文
posted @ 2017-10-28 13:45 nullxjx 阅读(724) 评论(0) 推荐(0)
摘要:思路请参考: http://www.cnblogs.com/kkun/archive/2011/11/23/2260280.html 代码如下: 阅读全文
posted @ 2017-10-27 21:44 nullxjx 阅读(1548) 评论(0) 推荐(0)
摘要:同志们,转眼就快三个月没见了,光阴似箭,岁月催人老 暑假转眼就过去了,大三上也过去一半了,然而感觉这段时间的收获甚小,不免感慨自己蹉跎岁月 这学期有几门重要的课,学起来也有点难,还有几门我听完一节课后就不想听的课。。。 编译原理,汇编语言,计算机组成原理,这几门课其实感觉还是有点意思的,最近在看汇编 阅读全文
posted @ 2017-10-27 21:33 nullxjx 阅读(662) 评论(0) 推荐(0)