并发数和线程数的区别jmeter

2025-03-14 11:57:06
推荐回答(1个)
回答1:

并发数和线程数的区别jmeter

为了不坑害求知的少年,我决定不给你写代码。去网上搜下关键字“任意节点最短路径”,你会发现有无数的源码。这些代码基本上都源于两个算法:floyd算法,Dijkstra算法。
使用floyd算法求最简单,代码大概8行左右,很简单吧,呵呵,核心就是3个for循环而已。

#include 
 
#define  MAX_PATH_LENGTH 1000000
#define  MAX_VECTOR_SIZE 108
int main()
{
    int path[MAX_VECTOR_SIZE][MAX_VECTOR_SIZE];
    int preNode = 0;
    int nextNode = 0;
    FILE *pfile = NULL;
    int i = 0;
    int j = 0;
    int k = 0;
    //初始化
    for(i=0;i    {
        for(j=0;j        {
            path[i][j]=MAX_PATH_LENGTH;
        }
    }
    for(i = 0; i    {
        path[i][i]=0;
    }
    //从文件中读入数据
    pfile = fopen("test.txt","r");
    if(pfile == NULL)
    {
        printf("ERROR!\n");
        return 0;
    }
    while(fscanf(pfile,"%d%d",&preNode,&nextNode)!=EOF)
    {
        path[preNode-1][nextNode-1] = 1;
        path[nextNode-1][preNode-1] = 1;
    }
    //使用floyd算法计算任意两点之间的距离
    for(i=0;i    {
        for(j=0;j        {
            for(k=0;k            {
                if(path[i][k]!=MAX_PATH_LENGTH && path[k][j]!=MAX_PATH_LENGTH)
                {
                    if(path[i][j]>path[i][k]+path[k][j])
                    {
                        path[i][j] = path[i][k]+path[k][j];
                    }
                }
            }
        }
    }
    //打印结果
    for(i=0;i    {
        for(j=0;j        {
            printf("%d ",path[i][j]);
        }
        printf("\n");
    }
    return 0;
}