Algorithm 算法和脚本定义

Algorithm 算法和脚本定义,algorithm,Algorithm,我经常听到“算法”一词的使用,有时会被我在这个网站上看到的上下文所迷惑,所以我想我会尝试澄清我的理解 对我来说,算法就是这样的数学过程的一部分 uint UPDC16( unsigned char a, uint crc ) { uint b,p; a^=crc; crc=(crc>>8)|(a<<8); p=a^(a>>4); p^=(p>>2); b=a; a>>=1; if( (p^(p>>1)

我经常听到“算法”一词的使用,有时会被我在这个网站上看到的上下文所迷惑,所以我想我会尝试澄清我的理解

对我来说,算法就是这样的数学过程的一部分

uint UPDC16( unsigned char a, uint crc )
{
    uint b,p;
    a^=crc; crc=(crc>>8)|(a<<8); p=a^(a>>4); p^=(p>>2); b=a; a>>=1;
    if( (p^(p>>1))&1 ) { crc^=0x0001; a|=0x80; }
    if( b & 1 ) crc^=0x0040; b=a; a^=(crc>>8);
    if( a & 1 ) crc^=0x0080; a>>=1;
    if( b & 0x80 ) a|=0x80;
    crc = (crc&0x00ff)|(a<<8);
    return crc;
}
我认为这是一个动作,通过nester if语句旋转图像,而不是一个数学函数,它不是一个算法,而是一个函数

for (int block_x = 0; block_x < 2048; block_x+=8)
 {
    for (int block_y = 0; blocky_y < 2048; block_y+=8)
    { 
       // this is the inner-loop that processes a block
       // of 8x8 pixels.
       for (int x= 0; x<8; x++)
         for (int y=0; y<8; y++)
            dest[x+block_x][y+block_y] = src[y+block_y][x+block_x]
    }
 }
我已经在谷歌上搜索过了,但我正在寻找有经验的程序员的解释。谁能帮我解释一下算法吗

另一件让我困扰的事情是,我已经看过它的术语脚本好几次了,但都不明白。我听说像lua这样的脚本语言可能是错误的

他们的意思是使用这些语言,还是脚本是一种特殊的编码方法


如果这有什么不同的话,我通常使用c/c++。

对于你的第一个问题:对我来说,算法可以是一个想法,比如计算数组中所有元素的总和……一个函数,有一个输入和输出,中间有一些步骤或一系列数学运算

所以一个算法就是一系列的步骤,允许你从某个地方到另一个地方,从你的家到你的工作,乘地铁也是一个算法

关于你的第二个问题:我正在简化两大类型的编程语言,编译语言和解释语言,在后者中有交互语言或脚本语言。另外,一般来说,脚本语言被认为是高级语言:您可以在几行代码中完成功能强大的事情,这些代码共同构成一个脚本

当然,也可以编译一些脚本语言……

您提供的示例是算法的实现。算法最好用文字来描述,可能是伪代码。脚本是用脚本语言编写的程序。C和C++都不能被描述为“脚本语言”。