算法是什么?

算法的出现,远远早于计算机,所以关于算法的知识点也非常多,大家不要急于求成,而本篇将从算法的概念、特征、评价以及复杂度四个方面详细介绍算法,希望关于算法的内容给大家一个清晰的认识,方便大家在日后的运用有更深的概念。

一、算法的概念

算法(algorithm,[lɡrem],计算程序):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

简单来说,算法就是解决一个问题的具体方法和步骤。

程序=算法+数据结构

二、算法的特征

(1)可行性

(2)确定性

算法的每一步都要有确切的意义,不能有二义性。例如“增加x的值”,并没有说增加多少,计算机就无法执行明确的运算。

(3)有穷性

(4)输入

算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法已经给出了初始条件。

(5)输出

一个算法可能有1个或多个输出,以反映输入数据加工后的代码,没有输出的算法是没有意义的!

三、算法的评价

通常一个好算法应该达到如下目标:

(1)正确性

算法应该正确的解决问题。

(2)可读性

算法应该具有较好的可读性,让人们理解算法的作用。

(3)健壮性

输入非法数据时,算法也可以做出适当的反应,而不会产生奇奇怪怪的输出。

四、算法的复杂度

O(2)

O(k)

O(n!)

示范:

1.O(1)级代码

//计算长方形面积inta,b;cin>>a>>b;ints=a*b;cout<

//二分查找intsearch(intnums[],intsize,inttarget)//nums是数组,size是数组的大小,target是需要查找的值{intleft=0;intright=size-1;//定义了target在左闭右闭的区间内,[left,right]while(left<=right){//当left==right时,区间[left,right]仍然有效intmiddle=left+((right-left)/2);//等同于(left+right)/2,防止溢出if(nums[middle]>target){right=middle-1;//target在左区间,所以[left,middle-1]}elseif(nums[middle]

//计算n的阶乘intn;cin>>n;intji=1;for(inti=1;i<=n;i++){ji*=i;}cout<

以上是关于算法知识的介绍,有了基础概念的理解,方便后期我们学习算法的运用和实操。

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

THE END
1.10大计算机经典算法「建议收藏」腾讯云开发者社区BFPRT算法解决的问题十分经典,即从某n个元素的序列中选出第k大(第k小)的元素,通过巧妙的分析,BFPRT可以保证在最坏情况下仍为线性时间复杂度。该算法的思想与快速排序思想相似,当然,为使得算法在最坏情况下,依然能达到o(n)的时间复杂度,五位算法作者做了精妙的处理。 https://cloud.tencent.com/developer/article/2089934
2.什么是算法,表示算法的4种方法(小白必读)我们知道,计算机解决任何问题都是靠程序驱动完成的。指挥计算机进行操作的一连串指令序列称为程序。计算机的基本原理是存储程序和程序控制,计算机程序可描述为程序=算法+数据。 那么,算法是什么呢?阅读完本节内容,相信大家能找到这个问题的答案。 什么是算法 https://blog.csdn.net/x15297649174/article/details/137055815
3.吴师兄学算法五分钟学算法吴师兄学算法(www.cxyxiaowu.com)提供许多数据结构与算法学习的基础知识, 涵盖 LeetCode 题解、剑指 Offer 题解、数据结构等内容。https://www.cxyxiaowu.com/
4.算法概述# 什么是算法? 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。 (得嘞,成功的把一个简单的词解释成我看不懂的样子) 算法: 12世纪的算法:是指用阿拉伯数字进行算术运算的过程 https://www.jianshu.com/p/8c8d20a9bde8
5.算法(第4版)(豆瓣)本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些 Java 代码实现采用了模块化的编程风格,读者可以方便地加以改造。配套网站 algs4.cs.princeton.edu 提供了本书内https://book.douban.com/subject/19952400/
6.“百亿票房演员”到底是怎么个算法?“百亿”到底是怎么个算法? 这名头最开始是吴京凭《战狼2》《流浪地球》成为爆爆京之后开始有的,毕竟单《战狼2》就56.8亿票房了。 在这之后,基本每一篇报导《流浪地球》战果的文章,都会提到吴京的“百亿”身份。 Title像会传染似的,很快,又有人管黄渤叫“百亿影帝”,而且还是“百亿票房第一人”。 https://m.1905.com/m/news/flipboard/1483672.shtml
7.我们需要什么样的“算法”?我们需要什么样的“算法”?新华社发 新华社发 您是否有过类似经历:在求职网站填写一份有关工作喜好的调查,网站会自动推送匹配的岗位;打开购物软件,发现页面上多是近期搜索或浏览过的商品;通过App阅读一条养生信息,随后便会经常收到养生知识、养生产品的广告推送……伴随着信息技术迅猛发展、大数据广泛应用,算法http://baijiahao.baidu.com/s?id=1683467663784249161&wfr=spider&for=pc