程序的灵魂---算法

简介:

数据结构与算法

概念:

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,如需转载请自行联系原作者
相关文章
|
4月前
|
存储 算法 生物认证
基于Zhang-Suen算法的图像细化处理FPGA实现,包含testbench和matlab验证程序
本项目基于Zhang-Suen算法实现图像细化处理,支持FPGA与MATLAB双平台验证。通过对比,FPGA细化效果与MATLAB一致,可有效减少图像数据量,便于后续识别与矢量化处理。算法适用于字符识别、指纹识别等领域,配套完整仿真代码及操作说明。
|
7月前
|
PyTorch 算法框架/工具 C++
人工智能算法python程序运行环境安装步骤整理
本教程详细介绍Python与AI开发环境的配置步骤,涵盖软件下载、VS2017安装、Anaconda配置、PyCharm设置及组件安装等内容,适用于Windows系统,助你快速搭建开发环境。
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
393 1
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
479 1
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
336 2
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
212 3
|
存储 缓存 算法
如何通过优化算法和代码结构来提升易语言程序的执行效率?
如何通过优化算法和代码结构来提升易语言程序的执行效率?
445 5
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
缓存 分布式计算 监控
算法优化:提升程序性能的艺术
【10月更文挑战第20天】算法优化:提升程序性能的艺术
|
机器学习/深度学习 并行计算 搜索推荐
程序技术好文:桶排序算法及其Java实现
程序技术好文:桶排序算法及其Java实现
207 0

热门文章

最新文章