随笔分类 - 算法深造
摘要:前言 排序算法自始至终都是算法类的基础或者基石。所谓排序算法是一种能将一串数据依据特定排序方式的一种算法。可以根据不同方面将众多的排序算法进行归类,比如排序的稳定方面等。所谓稳定排序指的是,不管在排序前后,待排序的若干相等元素的相对位置是恒定不变,换句话来说就是,假设元素A与B元素值相等,同时排序前元素A先于元素B,那么在排序过程结束后,元素A也必须先于元素B,我们称这样的排序算法是稳定排序算法。...
阅读全文
摘要:概念原理 遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。 遗传算法通常实现方式为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群...
阅读全文
摘要:生产者与消费者问题:有限缓冲前提;信号量mutex提供了对有限缓冲区互斥访问要求,初始化为0;信号量empty和full分别用来表示当前空缓冲区数量和满缓冲区数量。empty初始化为n,full初始化为0; 生产者代码: 1: do{2: produce an item in the current loop3: wait(empty);//查询缓冲区是否...
阅读全文
摘要:关于点是否在三角形内(落在边线上亦可)问题的解法,大体有两种: 1、根据面积来求解: 当点D落于三角形内时,图1所示,则由D与A,B,C三个顶点所组成的三个三角形面积之和即为外围三角形面积:S(ABC)=S(ABD)+S(BCD)+S(ACD) 当点D落于三角形外时,图2所示,则由D与A,B,C三个顶点所组成的三个三角形面积之和应该大于原三角形面积之和,多出了面积S(ACD):S(ABC)<S(A...
阅读全文
摘要:有一个桶,里面有白球、黑球各100个,人们必须按照以下规则把球取出来: 每次从桶里面拿两个球 如果是两个同色的球,就再放入一个黑球; 如果是两个异色的球,就再放入一个白球。 问题是:最后桶里面只剩下一个黑球的概率是多少? 针对这样一个问题,我们有两种不一样的解法: 方法一: 首先,我们可以通过相应的数学式来建立与上述三个条件等同的表达方式。在这里,我们可以使用集合的概念来表示,如(...
阅读全文
摘要:今天刚刚练习做到一个关于矩阵转置的算法问题,主要用到顺时针与逆时针旋转,时间匆忙,就随便记录下思路吧,等有时间再将详细的求解过程贴出来,当然原算法的复杂度要稍微高些,不过只要掌握了矩阵的旋转,答案也就自然而然地闪现呢!好了,不啰嗦,请看代码吧! 01: int _tmain(int argc, _TCHAR* argv[])02: { 03: int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},b[4][4],c[4][4],i,j;04: for(i=0;i<4;i++)05: {06: for(j=0;j<4
阅读全文
摘要: 近来在考研的过程中,再次拿起数据结构的课本,重温数据结构的魅力,让自己有了比之前不一样的体会,各种典型的数据结构如:线性表、栈、队列、树与图等,确实是我们做软件这一行人员必备的基础知识,当然主要还是为了考研巩固知识目的,决定在接下来的一段时间里与大家一起来重温经典的数据结构知识!好了,不多说,让我们进入今天的主题吧! ...
阅读全文
浙公网安备 33010602011771号