从零单排的算法基础

首先,咱们得先知道,什么是算法?

在生活中,当我们做菜,玩游戏,都有一些“套路”,无论是所谓的游戏秘籍,还是大师菜谱,在计算机的世界中,称之为算法。其目的就是为了解决一个问题,从而开展的不同的步骤,但究竟是不是这么简单呢,咱们就从算法的特性说起。

咱们可以从书中得知,算法有五个特性:

听上去很是玄乎,但是仔细分析还是可以有些不同的收获。

  1. 确定性
    一种算法除了能得出正确的结论之外,还得有明确操作步骤。如同把大象放进冰箱,第一步是打开冰箱,第二布是把大象放进去,第三步就是关上门。
  2. 可行性
    上面我提到把大象放进冰箱的几个步骤,第二个步骤显然是不可行的,所以自然也无法得出正确的结构。那么可行性就很重要了。
  3. 有穷性
    我再举一个例子,如果咱们要统计中国的人口,你不好好查人口数据,非要一个个的数。这样子虽然听上去总有一天数完,但是显然是不可能的,所以算法还需要有穷的步骤和有穷的执行时间。
  4. 输入和输出
    这两个我就和起来说,简而言之就是,输入就是问题,输出就是答案。而且只要问题不变,同一个算法得出的答案自然也是相同。

现在我们知道了什么是算法,那么——什么样的算法是一个好的算法呢?

正确是最最最最最最重要的

算法本身就是为了得出正确的结果而总结的“套路”,(除非是你用错了算法)如果没能得出正确的结论,那这个算法还有什么存在的意义呢?

不是我自己的错,我也要承担的绿帽精神(健壮)

咱们都知道,是人那就会犯错,比如咱们做了个计算器,让用户输入数字和符号进行计算,然而却给咱输入了一堆字母,自然得不出正确的结果,咱又不能去揍他,毕竟用户是上帝嘛,当然是选择原谅他。那么面对错误的输入时不会出错甚至能给出正确的解答,这也是好算法的一方面。

只有上帝知道我上个月前写的是什么玩意(可读)

如果是在工作中,可不是只有自己会看自己所写的代码,咱们不仅得看别人写的代码,还得有别人看自己代码的准备。在你痛骂别人不写注释的同时,不妨也给自己的代码写上,因为很有可能过段时间,你自己也看不懂了。除此之外,更加重要的是写代码的时候遵守规范,语法正确,代码结构清晰有条理,命名合理。。。。

天下武功,唯快不破!

咱们的计算机性能是有限的,在提高硬件水平的同时,咱们所写的程序也要尽量的高效。解决同一个问题,不同的算法做耗费的时间和资源有这天壤之别。有个笑话是这么说的,有个人为了给银行找麻烦,特意兑换了好几万的硬币去银行,要存钱。本来准备好好看柜员们数钱数到天昏地暗,结果一称重量,一除就得出了总数。这,就是算法的力量。

那么说了这么多,我还是不知道该怎么判断什么样的算法是好算法

在正确的前提下,咱们希望算法能够占用的资源少,运行的时间快。也就是让马儿少吃草,快快跑,你说这可能吗?还真就有可能。

咱们要建立标准,量化效率,构建理想模型。比如图灵机模型,RAM模型等

用复杂度(大O记号)来表示效率,之后咱们就根据这个来评判算法的好坏(快慢)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,140评论 25 707
  • 1、算法的概念 (1)概念:是指解题方案的准确而完整的描述。 【考题1】在计算机中,算法是指() A查询方法B加工...
    成都小菜阅读 1,551评论 0 15
  • 我很喜欢一个人。 我很喜欢一个人,有两种理解:一、我喜欢一个女孩,有种爱她的冲动,不会讨厌她;二、我喜欢独自一人,...
    f543445203bc阅读 236评论 0 2
  • 第一段落:不同时代人民遵循的原则不同,所以统治的策略也不同。君主之道有规律可循。 远古时代:人民亲亲,爱私利 中古...
    拾遗书生阅读 678评论 0 0
  • 文/陌上花狗 01 人们在强大的力量面前总是选择服从,但是今天如果我们放弃了一点五元的发票,明天我们就可能被迫放弃...
    陌上花狗阅读 742评论 0 4