2019-12-09 1.2什么是算法

1.算法(Algorithm)
一个有限的指令集;接受一些输入(有些情况不需要输入);产生输出;一定在有限步骤之后终止;每一条指令必修有充分明确的目标,不能有歧义,在计算机的处理范围之类,描述要抽象,不能依靠任何一种计算机语言和具体的实现手段。

例1.伪算法实现选择排序。
捕获.JPG

2.什么是好的算法
时间复杂度S(n)和空间复杂度T(n)
捕获.JPG

捕获.JPG

3.实例分析

最大子列和问题
捕获.JPG

算法一:
int Maxsubseqsum1(int A[],int N)
{
    int ThisSum,MaxSum=0;
    int i,j,k;
    for(i=0;i<N;i++)//i是子列左端的位置 
    {
    for(j=i;j<N;j++)//j是子列右端的位置 
    {ThisSum=0;//ThisSum是A[i]到A[j]的子列和
     for(k=i;k<=j;k++)
     ThisSum+=A[k];
     if(ThisSum>MaxSum)//如果刚得到的这个字列和最大 
     MaxSum=ThisSum; //则更新结果 
    }//j循环结束 
    } //i循环结束 
    return MaxSum;  
}

算法二:

int Maxsubseqsum1(int A[],int N)
{
    int ThisSum,MaxSum=0;
    int i,j,k;
    for(i=0;i<N;i++)//i是子列左端的位置 
    {
        ThisSum=0;//ThisSum是A[i]到A[j]的子列和
    for(j=i;j<N;j++)//j是子列右端的位置 
    {
     ThisSum+=A[j];//对于相同的i;不同的j,只要在j-1的基础上累加1项即可 
     if(ThisSum>MaxSum)//如果刚得到的这个字列和最大 
     MaxSum=ThisSum; //则更新结果 
    }//j循环结束 
    } //i循环结束 
    return MaxSum;  
}

待更新。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容