前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法 学习算法很简单

算法 学习算法很简单

作者头像
潇洒
发布2023-10-20 10:27:52
1340
发布2023-10-20 10:27:52
举报
文章被收录于专栏:石头岛

前言

很多非科班和科班的朋友看到算法就头疼,因为这东西学起来困难,也不常用,唯二的两个做用,面试和装B,一个能赚钱,一个能爽,但是学习路线太过陡峭,不是不想学,而是感觉入地无门。 其实凡事都有技巧,难是因为不够了解它,就好像追不到女孩子其实不是你不够好,而是你不够了解对方。 当然,开篇严肃一些,后面会慢慢把一些不容易理解的,化繁为简,包教包会,不会不退学费,本来也没人给我钱^.^。

首先我先说明我对学习的观点,学习一项技能,没有聪明之分,只有用不用心。 如果在自己没有达到可以称之为努力的程序,千万不要跟自己谈天赋,自己学没有达到能谈天赋的地步。 如果实在学不下去,不要骗自己,你就是抗拒学习这件事,而不是学不会。

如果算法还没有到了让你非学不可,也不要骗自己,是浪费时间。还不如去玩游戏、陪女朋友。但是如果现在非常迫切,已经到了非学不可,比如考试、面试,那就逼自己一把,不要轻易放弃自己。

一、数据结构和算法

数据结构

是计算机存储、组织数据的方式。 数据结构往往同高效的检索算法和索引技术有关。

数据结构在计算机科学界至今没有标准的定义。 通常: "数据结构是数据对象,以及存在于该对象的实例合组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。" 例如数组、集合、栈、队列、树、图都是数据结构。

算法

是在有限步骤内求解某一问题所使用的一组定义明确的规则。 通俗点说,就是计算机解题的过程。 在这个过程中,无论是形成解题思路还是编写程序,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。 一个算法应该具有以下五个重要的特征:

  1. 有穷性: 一个算法必须保证执行有限步之后结束;
  2. 确切性: 算法的每一步骤必须有确切的定义;
  3. 输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
  4. 输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
  5. 可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。

二、问题规模

就是所要解决的问题,它的规模。 1+2+3 是一个规模 1+2+3...+10 是一个规模 问题规模与核心操作次数,决定了这个算法的复杂度。

三、时间复杂度 和 空间复杂度

这两个概念应该是很多非科班出身的程序员最难理解的,网上很多文章都讲的太云里雾里,其实没有那么难,化繁为简的讲明白才有用。 这两个概念就是的意义是什么才是关键,后面专门去说这两个概念。

总结

总体现,只需要先了解这么多即可,慢慢推进。 学习的第一步是在于不要骗自己,真的要学习,好好静下心来学习。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、数据结构和算法
    • 数据结构
      • 算法
      • 二、问题规模
      • 三、时间复杂度 和 空间复杂度
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档