算法
文章平均质量分 63
ZHUO_SIR
这个作者很懒,什么都没留下…
展开
-
桶排序和基数排序
一、桶排序 桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排)。 假设你有五百万份试卷,每份试卷的满分都是100分,如果要你对这些试卷按照分数进行排序,天噜啦,五百万份试卷啊,快...原创 2018-06-12 22:27:18 · 408 阅读 · 0 评论 -
奇怪的方式:c++求解奇怪的方式
1.问题的重述标题:奇怪的分式上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4 乘以 8/5小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)。显...原创 2018-11-08 15:20:07 · 583 阅读 · 0 评论 -
什么递归??试一下你就懂了!!真的很有效!!
通过下面的操作你就懂什么是递归!!!if(你懂递归)点这里:请点击这个链接else(你不懂递归)点这里:递归是这样的!!!原创 2018-11-02 22:42:09 · 423 阅读 · 0 评论 -
c++求解李白喝酒问题
1.问题的重述话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白...原创 2018-11-01 22:02:48 · 2028 阅读 · 0 评论 -
c++切面条题目
1.问题的重述 一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。2.问题的分析由问题的重述中我们可以得出一个切面条的规律,那就是对折 n 次时中间切一刀得到的面条的数量的公式是:...原创 2018-10-30 21:39:05 · 831 阅读 · 1 评论 -
c++求啤酒和饮料题目
1.问题的重述 啤酒每罐2.3元,饮料每瓶1.9元,小明买了若干饮料喝啤酒,总共花了82.3元,并且他买的啤酒的数量比饮料的少,请问他买了多少罐啤酒和多少平饮料。2.问题的分析 根据问题的重述中我们假设如果全买啤酒50罐,则花费115元,大于82.3元;全买50瓶饮料则花费95元,大于82.3元;由此我们可以大概估计买的总数量在50瓶以内,所以我们可以定义一个 a 代表啤酒...原创 2018-10-30 21:21:18 · 1993 阅读 · 0 评论 -
c++求解奖券题目
问题的重述: 有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。问题的分析:抽奖活动的奖券号码是5位数,所以我们可以定义5个变量a,b,c,d,e来表示这五...原创 2018-10-29 20:09:11 · 858 阅读 · 0 评论 -
c++求生日蜡烛题目
问题的重述: 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛,现在算起来,他一共吹熄了236根蜡烛,请问他是从第几岁开始过生日的。分析:假设人的年龄是在1-100岁之间的,所以我们可以循环来找出他是从第几岁开始过生日,值得注意的是:需要申明一个临时变量temp,用来代替 i 计算总的蜡烛数,这是为了防止算出来的总和不等于236时可以从第2岁开...原创 2018-10-29 18:30:36 · 1097 阅读 · 0 评论 -
c++实现的模拟退火算法
算法简介 模拟退火算法得益于材料的统计力学的研究成果。统计力学表明材料中粒子的不同结构对应于粒子的不同能量水平。在高温条件下,粒子的能量较高,可以自由运动和重新排列。在低温条件下,粒子能量较低。如果从高温开始,非常缓慢地降温(这个过程被称为退火),粒子就可以在每个温度下达到热平衡。当系统完全被冷却时,最终形成处于低能状态的晶体。 假定我们要解决的问题是一个寻找最小值的优化问题。将物理学...原创 2018-08-27 17:27:09 · 2292 阅读 · 1 评论 -
自己用C语言写的一个模拟退火算法
模拟退火算法(SA)求解TSP 问题(C语言实现) 这篇文章是之前写的智能算法(遗传算法(GA)、粒子群算法(PSO))的补充。其实代码我老早之前就写完了,今天恰好重新翻到了,就拿出来给大家分享一下,也当是回顾与总结了。 首先介绍一下模拟退火算法(SA)。模拟退火算法(simulated annealing,SA)算法最早是由Metropolis等人提出的。其出发点是基于物理中...原创 2018-08-27 15:08:25 · 2980 阅读 · 2 评论 -
矩阵求最短路径
题目: 给定一个M×N的矩阵,定义一条路径为:从矩阵左上顶点数字出发到达右下数字,每一次只可以从一个数字出发向右移动一步或向下移动一步,定义路径和为:路径经过的数字的和。要求编写一个程序,找到路径和最小的那条路径,并给出最小路径和。给定如图所示矩阵:一条路径为2->0->3->6->9->5,路径和为25[2 ,0 ,11,1 ][4 ,3 ,6 ...原创 2018-08-05 15:29:39 · 6552 阅读 · 1 评论 -
矩阵的最短距离和
题目: 给定一个矩阵m,从左上角开始每次只能向右或者向下走,最后到达右下角的为止,路径上所有的数字累加起来就是路径和,返回所有路径中的最小的路径和。 举例: 1 3 5 9 8 1 3 4 5 0 6 1 8 8 4 0 路径1,3,1,0,6,1,0是所有路径中路径和最小的,所以返回12. 代码:package com.lyf.dp;import org.junit.T...原创 2018-07-16 21:58:43 · 2974 阅读 · 0 评论 -
几种经典的排序算法
综述最近复习了各种排序算法,记录了一下学习总结和心得,希望对大家能有所帮助。本文介绍了冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序、计数排序、桶排序、基数排序9种经典的排序算法。针对每种排序算法分析了算法的主要思路,每个算法都附上了伪代码和C++实现。电梯直达1. 冒泡排序 2. 插入排序 3 .选择排序 4. 快速排序 5. 归并排序 6. 堆排序 7. 计数排序 8. 桶排序 9....转载 2018-06-09 23:18:44 · 439 阅读 · 0 评论 -
最小生成树的算法
关于图的几个概念定义:连通图:在无向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若任意两个顶点vivi与vjvj都有路径相通,则称该有向图为强连通图。连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个顶点的代价,称这种连通图叫做连通网。生成树:一个连通图的生成树是指一个连通子图,它含有图中全部n个顶点,但...原创 2018-06-09 22:52:48 · 576 阅读 · 0 评论 -
几个最短路径的算法
一、floyd1.介绍 floyd算法只有五行代码,代码简单,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3),可以求多源最短路问题。 2.思想: Floyd算法的基本思想如下:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点X到B。所以,我们假设Dis(AB)为节点A到节点B的最短路径的距离,对于每一个节点X,我们检查Dis(AX)...转载 2018-06-08 22:12:34 · 47423 阅读 · 10 评论 -
图的算法的总结
图的定义: 很简单,G(V,E), V、E分别表示点和边的集合。 图的表示: 主要有两种,邻接矩阵和邻接表,前者空间复杂度,O(V2),后者为O(V+E)。因此,除非非常稠密的图(边非常多),一般后者优越于前者。图的遍历: 宽度遍历BFS(start): (1) 队列Q=Empty,数组bool visited[V]={false...}. Q...原创 2018-06-07 22:27:39 · 412 阅读 · 0 评论 -
SPOJ第一题
一.问题的重述:Your program is to use the brute-force approach in order to find the Answer to Life, the Universe, and Everything. More precisely... rewrite small numbers from input to output. Stop processi...原创 2018-11-26 20:44:54 · 647 阅读 · 0 评论