算法和脚本定义

时间:2011-05-13 10:44:14

标签: 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))&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执行动作(旋转图像),如果是法定而不是数学函数,则它不是算法而是函数。

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 ++。

1 个答案:

答案 0 :(得分:0)

对于你的第一个问题:对我来说,算法可以是一个想法,例如“计算你需要的数组的所有元素的总和......”,一个函数(有一个输入和不输出)以及其中的一些步骤)或一系列数学运算。

因此,算法将是一系列允许从某个地方到其他地方的步骤(使用地铁从家到工作也是一种算法)。

对于你的第二个问题:有两种大的类型(我正在简化)编程语言,“编译”和“interprated”,在后者中你有交互式或脚本语言。另外,一般来说,脚本语言被认为是高级语言:你可以在几行中组成一个强大的东西,形成一个脚本。

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