程序的灵魂---算法

简介:

数据结构与算法

概念:

a.数据结构只是静态的描述了数据元素之间的关系。

b.高效的程序需要在数据结构的基础上设计和选择算法。


***高效的程序***=恰当的数据结构和合适的算法

算法的定义

a.算法是特定问题求解步骤的描述

b.在计算机中表现为指令的有限序列

算法是独立存在的一种解决问题的方法和思想。

对于"算法"而言,

****语言并不重要,重要的是思想****。

算法的特性

a.输入

算法具有0个或对个输入.

b.输出

算法至少有1个或多个输出.

c.有穷性(自动结束)

算法在有限的步骤之后会自动结束而不会无限循环.

d.确定性

算法中的每一步都有确定的含义,不会出现二义性.

e.可行性

算法的每一步都是可行的.

算法设计的准则

一:正确性

a.算法对于合法数据能够得到满足要求的结果.(必选)

b.算法能够处理非法输入,并得到合理的结果.(必选)

c.算法对于边界数据和压力数据都能得到满足要求的结果.(可选)

  注意:正确性是算法最需要满足的基本准则,但是作为计算机程序,不可能无限制的满足这条准则.

    二:可读性

     a.算法要方便阅读,理解和交流

    三:健壮性

     a.算法不应该产生莫名其妙的结果

    四:高性价比

     a.利用最少的时间和资源得到满足要求的结果

     注意:

     算法可读性是最容易被忽视的,然而,程序是写给人看的,而不是计算机。

     小结

     a.算法是为了解决实际问题而设计的。

     b.数据结构是算法需要处理的问题载体。

     c.数据结构与算法相辅相成。

     程序 = 数据结构 + 算法


本文转自 沉迷学习中 51CTO博客,原文链接:http://blog.51cto.com/12907581/1950667,如需转载请自行联系原作者
相关文章
|
7月前
|
算法
第2章 算法——程序的灵魂
第2章 算法——程序的灵魂
37 0
|
3月前
|
算法
写一段圆弧插补算法程序
写一段圆弧插补算法程序
36 0
|
3月前
|
存储 算法 搜索推荐
Java常见算法-算法与程序、公式、数据结构的区别
算法、程序、公式和数据结构是计算机科学中的基本概念,它们之间有着密切的联系,但各自有着独特的含义和作用。
|
3月前
|
缓存 算法 JavaScript
提高Java程序性能!了解可达性分析算法、强软弱虚引用和三色标记GC的过程,避免不可达对象阻碍程序性能!
提高Java程序性能!了解可达性分析算法、强软弱虚引用和三色标记GC的过程,避免不可达对象阻碍程序性能!
|
5月前
|
算法 编译器 C语言
算法小白的心得笔记:分清楚执行程序和动态链接库的编译方式。
-fPIC 选项:这个选项告诉编译器生成位置无关代码(Position Independent Code)。这种代码同样可以在内存的任何位置执行,因为它使用的是相对地址而不是绝对地址。这对于动态库是必要的,因为动态库在被加载时,其在内存中的位置是不确定的。
27 0
|
6月前
|
算法
100个经典c算法 | 程序源码
100个经典c算法 | 程序源码
34 0
|
9月前
|
机器学习/深度学习 算法 数据挖掘
【MATLAB第3期】源码分享#数学建模常用算法程序整理
【MATLAB第3期】源码分享#数学建模常用算法程序整理
|
10月前
|
算法 计算机视觉 异构计算
基于FPGA的图像sobel边缘提取算法实现,包含testbench和matlab验证程序
基于FPGA的图像sobel边缘提取算法实现,包含testbench和matlab验证程序
191 0
|
10月前
|
算法
雪花算法程序实现及史上最全解析
雪花算法实现及介绍 (生产可以直接使用)
|
11月前
|
编解码 算法 异构计算
m基于FPGA的LDPC最小和译码算法verilog实现,包括testbench和matlab辅助验证程序
m基于FPGA的LDPC最小和译码算法verilog实现,包括testbench和matlab辅助验证程序
211 0