算法数据结构学习之路
文章平均质量分 61
qq_33520453
每个人的路注定不同,在盲目羡慕别人取得的成就的时候不如换成在自己颓废的时候想想别人是不是在努力奋斗,没有天生的大牛,临渊羡鱼不如退而结网。
展开
-
八皇后问题
关于八皇后的一种数学解决方法:众所周知八皇后问题中当你需要在新的每一行中添加一个皇后时 你都需要判断该点所在的行,列,和左右两个斜对角线上是否存在皇后,可能传统的方法你会想到一个个找毕竟计算机运算能力强大! 其实错误!不要忘记了数学! 有了数学的利器,代码写的少了而且运算更加快!设一个函数来判断一个点能否放皇后的代码如下:row为行 col为列 这都是需要传进来的参数原创 2016-04-15 19:33:02 · 264 阅读 · 0 评论 -
关于单参构造函数和类型转换函数
其实单参构造函数就是只有一个参数的构造函数,拷贝构造函数就是他的一种,单参构造函数和类型转化函数用法正好相反,单参构造函数是把形参中的值或者是对象转化为本对象,而类型转化函数是把本对象转换为一个值或者一个其他对象代码如下:itoa是一个可以把int型数据转化为string型数据的函数。在#include头文件中#include#include#includeusing na原创 2016-04-18 16:34:05 · 1521 阅读 · 0 评论 -
二分查找的一点改进优化
传统的二分查找是直接让数组的最大坐标与最小坐标之和除以二求得的mid但是有一种情况值得考虑: 例如大家要用字典查找单词amuse 那么大家会翻字典中间吗?会每次都翻中间去寻找吗?肯定是直接翻前面的页去寻找这个单词。 加入有1 到1000000个数近似均匀分布,那么大家找100时再从中间那样递归是不是会慢很多?那么我们就需要改变mid的计算方法去优化寻找key(关键值)的步骤。 只需做原创 2016-04-20 20:33:59 · 326 阅读 · 0 评论 -
冒泡排序的两种改进
第一种 设置下标让不必要的比较截止void bubble(int *p,int n){ int bound = n,m,i,a; while(bound!=0){ m = 0; for(i = 0;i if(p[i]>p[i+1]) swap(p[i],p[i+1]),m = i原创 2016-04-20 21:24:46 · 242 阅读 · 0 评论 -
AVL树建立 删除 最详细 最通俗易懂的代码 加图文解析!!!
http://www.cnblogs.com/skywang12345/p/3577360.html转载 2016-05-19 16:45:19 · 355 阅读 · 0 评论 -
简单的欧拉回路算法问题
题目 欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回到起点的一条回路。现给定一个图,问是否存在欧拉回路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是节点数N ( 1 < N < 1000 )和边数M;随后的M行对应M条边,每行给出一对正整数,分别是该条边直接连通的两个节点的编号(节点从1到N编号)。当N为0时输入结原创 2016-07-20 14:01:42 · 1220 阅读 · 0 评论 -
一个正整数如何分解为几个连续的正整数之和的形式
题目: 给定你一个数字 如:15 15可分解为7+84+5+61+2+3+4+5再如:88不可分解为任何连续的正整数之和所以输出NONE此题就是给定一个数字如果这个数字可以分解为几个连续的正整数之和那么就输出所有的形式,如果不能就输出NONE题解:其实这道题目可以用到数学中最基础的等差公式的方式:设给定的数字为S S = a1 +原创 2016-11-19 23:48:36 · 2922 阅读 · 2 评论 -
最长上升子序列两种复杂度的算法 LIS
本文的讲解摘自《挑战程序设计竞赛》不过说实话最长上升子序列这个概念并不难,我觉得难的是你能够把题目中的意思和解法抽象成最长上升子序列废话不多说了开始讲解第一种算法定义dp[i] 表示以ai结尾的最长上升子序列的长度这时呢又分为两种情况第一只包含ai第二 前面的长度 + ai所以得到递推式dp[i] = max(1,dp[j] + 1);代码如下:void s原创 2016-11-26 20:46:19 · 367 阅读 · 0 评论