算法初学的一些心得

前言:现在工作也快一年多了,有时间下班回家会学学算法,陆陆续续也接触了一些 貌似我知道的就冒泡排序其他的都不是很了解

最近买了一本书,边学边记录吧!

一些常用的方法

  • 暴力破解

下面是我的一些理解 其实也是 程咬金的三板斧 又不对之处欢迎大家指出!

暴力破解

简单来说就是 利用for循环去找出每种情况,需要强大的硬件和运算速度。 最简单快捷的实现方式

假设修正法

就是去假设一些情况通常我们会对一些情况进行逻辑判断比如判断三个书的大小 一般的做法是循环比较或者多个if else 之类的但是有时候程序需要有 易用性 和 可读性

int a=4,b=8,c=2; //如何比较 可以试试这样
int m=0;
if(a>m) m=a;
if(b>m) m=b;
if(c>m) m=c;
printout(m);
--->>>8

通过上面的就是假设m是最大的数这样写的话程序会清晰很多。

还有一个例子:

判断一个书是否是闰年

int year=0; bool isYear=false;
if(year%4==0&&year%100!=0||year%400==0)
{
isYear=true;
}
bool isYear=false; //假设为false
if(year%4==0) isYear=true;
if(year%100==0) isYear=false;
if(year%400==0) isYear=true;

以上代码也是通过假设

常数变异法

相关问题 1 :打印一个金字塔

         *
* *
* * *
* * * *
* * * * *
如何实现
先打印 一排* 号 利用两个for循环
for(int i=0;i<5;i++)
{
Console.Write(" ");
}
for(int i=0;i<5;i++)
{
Console.Write("* ");
}
//输出结果 * * * * *
如果要输出四个"* " 就将上面的两个循环改成
for(int i=0;i<6;i++)
{
Console.Write(" ");
}
for(int i=0;i<4;i++)
{
Console.Write("* ");
}
依次类推 一直到打印1个 "*"
上面的数字分别是 5 5 --> 6 4 -->7 3 -->8 2 -->9 1
其中的规律 9-1=8 9-2=7 9-3=6 9-4=5
所以
利用第三个for循环
for(int k=0;k<5;k++)
{
for(int i=0;i<9-k;i++)
{
Console.Write(" ");
}
for(int i=0;i<k+1;i++)
{
Console.Write("* ");
}
}

这样就可以打印出一个简单的图像了,

还有就是可以打印出一个

             A
A B A
A B C B A
A B C D C B A
A B C D E D C B A

这样的图像

思考

学习算法主要还是平时多积累。有时候一些简单的问题就是想不明白,但是别人一说就觉得不是很难。经常会有这样的情况就是平时思考的少了

算法学习笔记,几个简单的Demo的更多相关文章

  1. Johnson算法学习笔记

    \(Johnson\)算法学习笔记. 在最短路的学习中,我们曾学习了三种最短路的算法,\(Bellman-Ford\)算法及其队列优化\(SPFA\)算法,\(Dijkstra\)算法.这些算法可以快 ...

  2. 某科学的PID算法学习笔记

    最近,在某社团的要求下,自学了PID算法.学完后,深切地感受到PID算法之强大.PID算法应用广泛,比如加热器.平衡车.无人机等等,是自动控制理论中比较容易理解但十分重要的算法. 下面是博主学习过程中 ...

  3. C / C++算法学习笔记(8)-SHELL排序

    原始地址:C / C++算法学习笔记(8)-SHELL排序 基本思想 先取一个小于n的整数d1作为第一个增量(gap),把文件的全部记录分成d1个组.所有距离为dl的倍数的记录放在同一个组中.先在各组 ...

  4. Manacher算法学习笔记 | LeetCode#5

    Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的 ...

  5. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  6. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  7. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  8. Johnson 全源最短路径算法学习笔记

    Johnson 全源最短路径算法学习笔记 如果你希望得到带互动的极简文字体验,请点这里 我们来学习johnson Johnson 算法是一种在边加权有向图中找到所有顶点对之间最短路径的方法.它允许一些 ...

  9. [原创]java WEB学习笔记41:简单标签之带属性的自定义标签(输出指定文件,计算并输出两个数的最大值 demo)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  10. 算法学习笔记——sort 和 qsort 提供的快速排序

    这里存放的是笔者在学习算法和数据结构时相关的学习笔记,记录了笔者通过网络和书籍资料中学习到的知识点和技巧,在供自己学习和反思的同时为有需要的人提供一定的思路和帮助. 从排序开始 基本的排序算法包括冒泡 ...

随机推荐

  1. Newtonsoft.Json高级用法之枚举中文转义

    最近看博客园中 焰尾迭的两篇关于"Newtonsoft.Json高级用法"的文章受到了很多人的评论,一度登入到头条推荐. 今天我就不再重复焰尾迭博文中的一些提过的Newtonsof ...

  2. 在Delphi中编辑res文件

    先用记事本编写一个rc的文件.如内容为:_Comms RCData Comms.jpg Comms.jpg为图片名称,然后在这个rc文件和图片拷贝到delphi安装路径的bin文件夹里面,选中这两个文 ...

  3. c# 停靠窗体

    public partial class FrmAnchor : Form, IMessageFilter { public FrmAnchor(Control parentControlc, Con ...

  4. QT+OpenCV+OpenGL安装

    Ubuntu 10.04.3 LTS ("fresh" install) OpenCV 2.3.1 Qt SDK version 1.2.0 for Linux/X11 32-bi ...

  5. 快速开发平台 WebBuilder 8.4 发布

    WebBuilder是一款强大,全面和高效的应用开发和运行平台.基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发.高效.稳定和可扩展的特点,适合复杂企业级应用 ...

  6. return Json对象时序列化错误

    当要序列化的表与另一个表是一对多的关系是,表1序列化时会找到另一个表2关联的字段,会将另一个表2进行序列化,然后表2中也有一个字段与表1关联,这样序列化就会产生循环序列化. 在网上进行搜索,其中大多数 ...

  7. 如何在 cmd 命令行中查看、修改、删除与添加环境变量

    Windows 和 linux 区别 一.查看所有环境变量的名称和值:Linux下:exportWindows下:set二.根据名称查该环境变量的值:Linux下:echo $环境变量名比如:echo ...

  8. oracle10g登录em后,提示“java.lang.Exception: Exception in sending Request :: null”

    出现错误时登录企业管理器时出现的界面 出现这种错误一般是因为没有设置时区,一般默认的是agentTZRegion=GMT,也就是GMT.所以大家只要设置了这个东西,然后重新启动dbconsole就可以 ...

  9. SYN012型B码时统

       SYN012型B码时统 产品概述 SYN012型B码时统是由西安同步电子科技有限公司精心设计.自行研发生产的一款通用性时统终端,内置高精度恒温晶振,接收GPS北斗双模卫星信号,10MHz外部参考 ...

  10. 05 div的嵌套

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...