91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 92KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-08
  • 語言: 其他
  • 標簽: 算法??

資源簡介

本科算法實驗-最長公共子序列【數據+代碼+說明+流程圖+測試用例】

資源截圖

代碼片段和文件信息

#include
#include

char?a[500]b[500];
char?num[501][501];?///記錄中間結果的數組
char?flag[501][501];????///標記數組,用于標識下標的走向,構造出公共子序列

void?LCS()
{
????int?ij;
????for(i=1;i<=strlen(a);i++)
????{
????????for(j=1;j<=strlen(b);j++)
????????{
????????????if(a[i-1]==b[j-1])???///注意這里的下標是i-1與j-1
????????????{
????????????????num[i][j]=num[i-1][j-1]+1;
????????????????flag[i][j]=1;??///斜向下標記
????????????}
????????????else?if(num[i][j-1]>num[i-1][j])
????????????{
????????????????num[i][j]=num[i][j-1];flag[i][j]=2;??///向右標記
????????????}
????????????else
????????????{
????????????????num[i][j]=num[i-1][j];flag[i][j]=3;??///向下標記
????????????}
????????}
????}
}

void?getLCS()
{

????char?res[500];
????int?i=strlen(a);
????int?j=strlen(b);
????int?k=0;????///用于保存結果的數組標志位
????while(i>0?&&?j>0)
????{
????????if(flag[i][j]==1)???///如果是斜向下標記
????????{
????????????res[k]=a[i-1];k++;i--;j--;
????????}
????????else?if(flag[i][j]==2)??///如果是斜向右標記
????????????j--;
????????else?if(flag[i][j]==3)??///如果是斜向下標記
????????????i--;
????}
??printf(“最長公共子序列:\n“);
????for(i=k-1;i>=0;i--)printf(“%c“res[i]);
}

int?main()
{
????int?in;

????FILE?*fp;
????char?number;
????srand((unsigned)?time(NULL));?//用時間做種,每次產生隨機數不一樣
????printf(“兩個序列的字母個數:“);
????scanf(“%d“&n);
????fp=fopen(“input.txt““w“);
????if(fp==NULL)
????{
????????printf(“open?file?failed\n“);
????????return?-1;
????}

????for?(i=0;?i????{
????????a[i]?=rand()?%?4?+?‘a‘?;?//產生字母的隨機數
????????fprintf(fp“%c?“a[i]);
????}
????fprintf(fp“\n“);

????for?(i=0;?i????{
????????b[i]?=??rand()?%4?+?‘a‘?;?//產生字母的隨機數
????????fprintf(fp“%c?“b[i]);
????}
????fprintf(fp“\n“);
????fclose(fp);
????printf(“隨機產生的兩個序列為:\n“);
????for?(i=0;?i????{
????????printf(“%c?“a[i]);
????}
????printf(“\n“);

????for?(i=0;?i????{
????????printf(“%c?“b[i]);
????}
????printf(“\n“);

????memset(num0sizeof(num));
????memset(flag0sizeof(flag));
????LCS();
????printf(“長度:%d\n“num[strlen(a)][strlen(b)]);
????getLCS();
????return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2004??2016-12-05?12:09??最長公共子序列\input.txt
?????文件????????2274??2016-12-05?15:18??最長公共子序列\最長公共子序列.c
?????文件???????31523??2016-12-05?12:22??最長公共子序列\最長公共子序列.exe
?????文件????????3400??2016-12-05?12:22??最長公共子序列\最長公共子序列.o
?????文件???????10633??2016-12-05?12:11??最長公共子序列\測試用例.xlsx
?????文件???????76319??2016-12-05?15:17??最長公共子序列\說明+流程圖.docx
?????目錄???????????0??2019-01-06?15:47??最長公共子序列\

評論

共有 條評論