目录
前言
A.建议:
1.学习算法最重要的是理解算法的每一步,而不是记住算法。
2.建议读者学习算法的时候,自己手动一步一步地运行算法。
B.简介:
曼哈顿距离(Manhattan distance)也称为城市街区距离,是衡量在笛卡尔坐标系中两点之间距离的一种方法。在二维空间中,它是指从点A到点B沿水平和垂直轴线移动的总距离,就像在一个棋盘上行走一样,不考虑对角线移动。
一 代码实现
在C语言中实现计算两个点之间的曼哈顿距离可以非常简单。假设我们有以下结构体定义来表示一个点:
#include <stdio.h>
#include <stdlib.h> // For abs() function
typedef struct {
int x;
int y;
} Point;
// 定义计算曼哈顿距离的函数
int manhattan_distance(Point p1, Point p2) {
return abs(p1.x - p2.x) + abs(p1.y - p2.y);
}
int main() {
Point point1, point2;
printf("请输入第一个点的坐标:");
scanf("%d %d", &point1.x, &point1.y);
printf("请输入第二个点的坐标:");
scanf("%d %d", &point2.x, &point2.y);
int dist = manhattan_distance(point1, point2);
printf("两个点之间的曼哈顿距离是:%d\n", dist);
return 0;
}
在这个代码示例中:
- 我们首先定义了一个名为
Point的结构体,用来存储点的x和y坐标。 - 然后定义了一个函数
manhattan_distance,接受两个Point类型的参数,并返回它们之间的曼哈顿距离,通过调用C标准库中的abs函数

本文介绍了曼哈顿距离的概念,提供了C语言代码实现,并详细讨论了其时间复杂度、空间复杂度以及优缺点。着重强调了在现实中的广泛应用,包括路径搜索、物流管理、机器学习等领域。
最低0.47元/天 解锁文章
459

被折叠的 条评论
为什么被折叠?



