#include<stdio.h>
#define MAXSIZE 0x7fffffff
int zheng(int n)//输出绝对值
{
if(n<0){
n=-n;
return n;
}
else{
return n;
}
}
bool min_d(int s,int d ,int f)//判断a是不是最小的
{
if(s<=d&&s<=f)
return true;
else
return false;
}
int min_lu(int a[],int b[],int c[],int x,int y,int z)//计算最小路径
{
int i=0,j=0,k=0;
int d_min=MAXSIZE;
int d;
while(i<x&&j<y&&k<z&&d_min>0) {
d=zheng(a[i]-b[j])+zheng(b[j]-c[k])+zheng(c[k]-a[i]);
if(d<d_min)
d_min=d;
if(min_d(a[i],b[j],c[k]))
i++;
else if(min_d(b[j],c[k],a[i]))
j++;
else k++;
}
return d_min;
}
int main()
{
int a[]={-1,0,9};
int b[]={-25,-10,10,11};
int c[]={2,9,17,30,41};
int sa=sizeof(a)/sizeof(a[0]);
int sb=sizeof(b)/sizeof(b[0]);
int sc=sizeof(c)/sizeof(c[0]);
int min=min_lu(a,b,c,sa,sb,sc);
printf("%d",min);
}
计算最小路径
最新推荐文章于 2024-09-14 16:21:49 发布