算法初探

作者: Girl_iOS | 来源:发表于2015-12-03 20:52 被阅读1564次

曾经有人建议说程序员都应该读读算法.虽然大学里也学过严蔚敏的数据结构书,但自己好像神游般不知学了什么,也不知道自己是如何稀里糊涂地通过了考试.现在有时间了,就想重新看看算法,也许智商是硬伤,但能走多远算多远吧:)

什么是算法?
所谓算法就是定义良好的计算过程,它取一个或一组作为输入,并产生一个或一组值作为输出.亦即,算法就是一系列的计算步骤,用来将输入数据转换成输出结果.(《算法导论》)

算法里有两个重要的概念时间复杂度空间复杂度

  • 时间复杂度(释义来自维基百科)

计算机科学中,算法时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大小趋近无穷时的情况。举例,如果一个算法对于任何大小为

nn 的输入,它至多需要 5n^3+3n5n^3+3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n^3)O(n^3) 。
计算时间复杂度的过程,常常需要分析一个算法运行过程中需要的基本操作,计量所有操作的数量。通常假设一个基本操作可在固定时间内完成,因此总运行时间和操作的总数量最多相差一个常量系数。
有时候,即使对于大小相同的输入,同一算法的效率也可能不同。因此,常对最坏时间复杂度进行分析。最坏时间复杂度定义为对于给定大小 nn 的任何输入,某个算法的最大运行时间,记为 T(n)T(n) 。通常根据 T(n)T(n) 对时间复杂度进行分类。比如,如果对某个算法有 T(n) = O(n)T(n) = O(n) ,则称其具有线性时间。如有 T(n) = O(2^n)T(n) = O(2^n) ,则称其具有指数时间
  • 空间复杂度(维基百科)

算法的空间复杂度是指计算机科学领域完成一个算法所需要占用的存储空间,一般是输入参数的函数。它是算法优劣的重要度量指标,一般来说,空间复杂度越小,算法越好。我们假设有一个图灵机来解决某一类语言的某一问题,设有X个字(word)属于这个问题,把X放入这个图灵机的输入端,这个图灵机为解决此问题所需要的工作带格子数总和称为空间

一般学习算法的第一步就是排序,排序算法有很多种:插入排序 选择排序 冒泡排序 快速排序 归并排序 希尔排序 堆排序 等等.一个有意思的网站Comparison Sorting Algorithms演示了各个算法的实现.如果想看看各个经典排序算法如何实现,可以看看经典排序算法总结与实现.

Github上也有算法实现的Objective-C版 Swift版 Ruby版

读哪些书呢?我想一本《算法导论》就够了吧?可以结合视频来看.

还有很多人建议刷刷leetcode,这里有一些答案的参考.

要去看算法啦 :)

Girl学iOS100天 第29天

相关文章

  • blast 算法初探--高歌

    blast 算法初探Blast 算法自从1990以来被引用了上万次,是basic local alignment ...

  • 3.sklearn_classification

    1 Sklearn分类学习算法一览 1.1 机器学习算法选择 1.2 scikit-learn初探 scikit-...

  • 算法初探

    曾经有人建议说程序员都应该读读算法.虽然大学里也学过严蔚敏的数据结构书,但自己好像神游般不知学了什么,也不知道自己...

  • 【技术综述】从alexnet到resnet,初探深度学习算法玩摄

    本文首发于微信公众号《与有三学AI》 从alexnet到resnet,初探深度学习算法玩摄影 今天说的是初探,那就...

  • 机器学习之旅---如何评价一个模型的好坏

    2019/11/13 Caesar 前言 上一篇文章我们初探了机器学习领域的第一个算法-kNN算法,...

  • 随机算法初探

    随机算法,顾名思义,就是在算法的运行过程中引入了随机机制,因此每次运行得到的结果和运行时间不一样。常见的随机算法有...

  • 随机算法初探

    随机数是一个非常重要的概念,最简单的应用可能就是掷骰子游戏。而更深层的应用就有谷歌的试试手气,微博的随便看看,还有...

  • blast算法初探

    在前面我们探讨了两条序列是如何通过动态规划算法进行比对的,但是在现如今的拥有海量数据的数据库中,想直接通过动态规划...

  • 初探推荐算法

    声明:以下是学习《集体编程智慧》的笔记,代码使用python编写。需要有python自定义函数的知识,以及事先了解...

  • 微信红包随机算法初探

    本文简书备份地址:微信红包随机算法初探 最近看了一篇文章,讲微信红包随机算法的。感觉很不错,所以自己实现了下,并进...

网友评论

    本文标题:算法初探

    本文链接:https://www.haomeiwen.com/subject/pjfshttx.html