尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

基础--01---算法----概述

基础--01---算法----概述 什么是算法官方解释算法是指解题方案的准确而完整的描述是一系列解决问题的清晰指令算法代表着用系统的方法解决问题的策略机制。也就是说能够对一定规范的输入在有限时间内获得所要求的输出。算法 数据结构 程序设计“Algorithms Data Structures Programs”出自Pascal之父Nicklaus Wirth算法是为了解决实际问题而设计的数据结构是算法需要处理的问题载体。概述:程序能否快速而高效地完成预定的任务取决于是否选对了数据结构而程序是否能清楚而正确地把问题解决则取决于算法。算法是计算机处理信息的本质因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。算法目标在程序中我们也可以用不同的算法解决相同的问题而不同的算法的成本也是不相同的。总体上一个优秀的算法追求以下两个目标花最少的时间完成需求占用最少的内存空间完成需求案例需求1计算1到100的和。第一种解法Testpublicvoidtest01(){intsum0;intn100;for(inti1;in;i){sumi;}System.out.println(sumsum);}第二种解法Testpublicvoidtest01(){intsum0;intn100;sum(n1)*n/2;System.out.println(sumsum);}解析:很明显第二种算法完成需求花费的时间更少一些。需求2计算10的阶乘第一种解法递归Testpublicvoidtest01(){//测试计算10的阶乘longresultfun1(10);System.out.println(result);}//计算n的阶乘publicstaticlongfun1(longn){if(n1){return1;}returnn*fun1(n-1);}第二种解法for循环Testpublicvoidtest02(){//测试计算10的阶乘longresultfun2(10);System.out.println(result);}//计算n的阶乘publicstaticlongfun2(longn){intresult1;for(longi1;in;i){result*i;}returnresult;}解析:第一种解法:使用递归完成需求fun1方法会执行10次并且第一次执行未完毕调用第二次执行第二次执行未完毕调用第三次执行…最终最多的时候需要在栈内存同时开辟10块内存分别执行10个fun1方法第二种解法:使用for循环完成需求fun2方法只会执行一次最终只需要在栈内存开辟一块内存执行fun2方法 即可。很明显第二种算法完成需求占用的内存空间更小。递归通常消耗内存高,因为操作方法需要开辟更多空间体系图排序:查找:
返回列表