← 前一天目录后一天 →

每日科普 · 2026-09-16 周三

考研 408 × 求职面试

知识点 · 算法设计与分析 · 基础

算法的定义与五个基本特性

算法(Algorithm)是解决某一特定问题的一组明确、有限的操作步骤,是程序设计的灵魂。通俗地说,算法就是「做事的方法」:给定输入,经过一系列确定的处理,最终得到输出。它必须满足五个基本特性: 1. 有穷性:算法在执行有限步骤后必须结束,不能无限循环下去。 2. 确定性:每一条指令含义唯一,相同的输入必然得到相同的结果,不含歧义。 3. 可行性:每一步操作都能通过已实现的基本运算有限次完成,切实可做。 4. 输入:算法有零个或多个输入,用于描述运算对象的初始状态。 5. 输出:算法有一个或多个输出,即对输入处理后的结果,没有输出就失去了意义。 其中,有穷性和确定性是算法区别于普通「计算过程」的关键。注意:程序可以不满足有穷性(如操作系统常驻运行),而算法必须有穷。

每日一题 · 算法设计与分析

算法的定义与五个基本特性

下列关于算法五个基本特性的说法,正确的是( )。 A. 算法可以没有输入,但必须至少有一个输出 B. 算法中每条指令可以允许存在少量二义性 C. 算法只要在有限步骤内结束即可,不要求每步可行 D. 一个算法必须在有限时间内执行,且输入可以有多个

解析

选A。本题考查五个基本特性的准确内涵。输入可为0个或多个,但输出至少要有1个,否则算法无意义,故A正确;确定性要求指令无二义性,B错;可行性要求每步都能有效执行,C错;D中说「输入可以有多个」本身没错,但表述不全面且后半句与「输出至少一个」混淆,整句并非对特性的准确完整判断,故选A。做题时抓住「输出≥1、指令唯一、每步可行、有限步结束」这几个关键词即可。

面试小贴士 · 算法设计与分析

算法的定义与五个基本特性

面试官常问「算法和程序的区别」「五个特性中最重要的是哪个」。答题先给定义,再逐条点特性,并强调程序可不满足有穷性而算法必须满足。易错点:把「确定性」误答成「正确性」,或漏掉「输出至少有一个」。

代码实现 · C

代码示例

#include <stdio.h>

/* 求数组最大值的算法:体现输入、输出、确定性、有穷性、可行性 */
int findMax(int a[], int n) {   /* 输入:数组a和长度n */
    int max = a[0];             /* 确定性:初值唯一 */
    int i;
    for (i = 1; i < n; i++) {   /* 循环有限次,满足有穷性 */
        if (a[i] > max) {       /* 每步都能执行,满足可行性 */
            max = a[i];
        }
    }
    return max;                 /* 输出:返回最大值 */
}

int main(void) {
    int data[] = {3, 7, 2, 9, 5};
    int n = sizeof(data) / sizeof(data[0]);
    printf("max = %d\n", findMax(data, n));
    return 0;
}
← 前一天目录后一天 →