1、合并排序1:
#include
2、 void diaplay(int a);
};
void list::input(int a)
{
cout<<"Please input shorted array:"<
3、 if(arrayc[i]<=arrayc[j]) arrayd[k++]=arrayc[i++]; else arrayd[k++]=arrayc[j++]; if(i>m) for(int q=j;q<=r;q++) arrayd[k++]=arrayc[q]; else for(int q=i;q<=m;q++) arrayd[k++]=arrayc[q]; } void list::mergepass(int arrayx[],int arrayy[
4、],int s)
{
int i=0;
while(i<=N-2*s)
{
merge(arrayx,arrayy,i,i+s-1,i+2*s-1);
i=i+2*s;
}
if((i+s) 5、nt s=1;
while(s 6、
cin>>a;
f.input(a);
f.mergesort (f.array);
f.diaplay (a);
}
合并排序:2
#include 7、
*R=newint [n2+1];
int i,j,k;
for (i=0;i 8、
i=i+1;
}
else
{
A[k]=R[j];
j=j+1;
}
}
}
void MERGESORT(int *A,int p,int r)
{
if (p 9、in()
{
int x,z,p,r;
cout<<"请输入数组长度"< 10、or (int m=p;m<=r;m++)
{
cout<
#include 11、i 12、个数组结尾
bcout=0;//指向b中元素
for(int j=0;j 13、if(a[a1cout]
void MergeSort(T a[],int left,int right)
{
T *b=new 14、 int[right-left+1];
if(left 15、how many numbers to sort:";
cin>>n;
int *a=new int[n];
cout<<"input "< 16、amespace std;
void Merge(int a[],int b[],int l,int m,int r)
{
int i=l,j=m+1,k=l;
while ((i<=m)&&(j<=r))
if (a[i]<=a[j])b[k++]=a[i++];
else b[k++]=a[j++];
if (i>m)
for(int q=j;q<=r;q++)
b[k++]=a[q];
else
for(int q=i;q<=m;q++)
b[k++]=a[q];
}
void Copy(int a[], 17、int b[],int s,int n)
{
for(int i=s;i<=n;i++)
a[i]=b[i];
}
void MergeSort(int a[],int left,int right)
{
int i;
if(left 18、
{
int a[100];
int n,i;
cout<<"输入元素个数n:";
cin>>n;
cout<<"输入一维数组a["< 19、sing namespace std;
int main()
{
int i, j, k;
cout<<"输入二维数组a行数和二维数组c行数x:";
int x;
cin>>x;
cout<<"输入二维数组a列数和二维数组b行数y:";
int y;
cin>>y;
cout<<"输入二维数组b列数和二维数组c行数z:";
int z;
cin>>z;
int **a, **b, **c;
a=new int*[x];
for(i=0;i 20、输入二维数组a:"< 21、 {
c[i]=new int [z];
}
cout<<"输入二维数组c:"< 22、{
cout< 23、clude 24、for(k=0;k 25、nst int m=3;
const int n=3;
int a[m][n],i,j; //初始化数组 a,b
for(i=0;i 26、t k=3;
const int h=2;
int b[k][h],x,y;
for( x=0;x 27、 28、
}
return 0; //显示数组 c
}
矩阵相乘4:
#include 29、]*p[i]*p[j];
s[i][j]=i;
for(int k=i+1;k 30、
}
void Traceback(int i,int j,int s[][7])//输出相乘方案
{
if(i==j)
return;
Traceback(i,s[i][j],s);
Traceback(s[i][j]+1,j,s);
cout<<"Multiply A"< 31、t i=0;i<=n;i++)
{
cin>>p[i]>>endl;
}
chain(p,n,m,s);
Traceback(1,6,s);
}
return 0;
}
Haffman编码1:
#include 32、ruct
{
int bit[10];
int start;
char leaf;
}
hcodetype;
void huf(char cha[],int m[],int n)
{
int i,j,m1,m2,x1,x2,c,p;
hnodetype *huffnode=new hnodetype[2*n-1];
hcodetype *huffcode=new hcodetype[n],cd;
for(i=0;i<2*n-1;i++)
{
huffnode[i].weight=0;
huffnode[i].parent=0;
33、 huffnode[i].flag=0;
huffnode[i].lchild=-1;
huffnode[i].rchild=-1;
}
for(i=0;i 34、 {
m2=m1;
x2=x1;
m1=huffnode[j].weight;
x1=j;
}
else if(huffnode[j].weight<=m2&&huffnode[j].flag==0)
{
m2=huffnode[j].weight;
x2=j;
}
}
huffnode[x1].parent=n+i;
huffnode[x2].parent=n+i;
huffnode[x1].flag=1;
huffnod 35、e[x2].flag=1;
huffnode[n+i].weight=huffnode[x1].weight+huffnode[x2].weight;
huffnode[n+i].lchild=x1;
huffnode[n+i].rchild=x2;
}
for(i=0;i 36、
cd.bit[cd.start]=1;
cd.start--;
c=p;
p=huffnode[c].parent;
}
cout< 37、uffnode;
}
void main()
{
string str;
int i=0,j,n,m[100],h,k=0;
char cha[100];
cout<<"请输入一个字符串"< 38、cout<<"字符"< 39、d;
//********************************//结构哈夫曼树//********************************/*哈夫曼树次序表定义*/
typedef struct
{
int weight;
int parent,lchild,rchild;
}
HTNode;
typedef HTNode * HuffmanTree;/*初始化一个哈夫曼树*/
void InitHuffmanTree(HuffmanTree &HT,int m)
{
int i;
HT=new HTNode[m];
for(i=0;i< 40、m;i++)
{
HT[i].weight=0;
HT[i].parent=-1;
HT[i].lchild=-1;
HT[i].rchild=-1;
}
}
//****************************************//从n个结点中选择最小两个结点//****************************************
void SelectMin(HuffmanTree &HT,int n,int &min1,int &min2)
{
typedef struct
{
int NewWeight;/ 41、/存放权
int p;//存放该结点所在位置
}
TempNode,*TempTree;
TempTree TT=new TempNode[n];
int i,j;
j=0;
for(i=0;i 42、)
{
if(TT[i].NewWeight 43、/
void CreateHaffmanTree(HuffmanTree &HT,int n)
{
int i;
int m;
int min1,min2;
if(n<=1)
cout<<"Parameter Error!";
m=2*n-1;//哈夫曼树中结点个数
InitHuffmanTree(HT,m);
for(i=0;i 44、 HT[min2].parent=i;
HT[i].lchild=min1;
HT[i].rchild=min2;
HT[i].weight=HT[min1].weight+HT[min2].weight;
cout< 45、odeNode;
typedef CodeNode * HuffmanCode;/*哈夫曼编码结构*/
void CreateHuffmanCode(HuffmanTree &HT,HuffmanCode &HC,int n)
{
int i;
int start;
int c;
int p;
char *cd;
char q;
HC=new CodeNode[n];
cd=new char[n];
cd[n-1]='/0';
for(i=0;i 46、
c=i;
while((p=HT[c].parent)>=0)
{
--start;
cd[start]=(HT[p].lchild==c)?'0':'1';c=p;
}
strcpy(HC[i].bits,&cd[start]);
}
delete cd;
}/*哈夫曼编码输出*/
void OutputHuffmanCode(HuffmanCode &HC,int n)
{
int i;
for(i=0;i 47、}
void main()
{
int i;
cout<<"输入字符个数:";
cin>>i;
HuffmanTree HT;
HuffmanCode HC;
CreateHaffmanTree(HT,i);
CreateHuffmanCode(HT,HC,i);
OutputHuffmanCode(HC,i);
}
图形着色1:
#include 48、l isValid(bool b[5][5], int k, int x[])
{
for(int i=0; i 49、true,false,false,true, true,true,true,true,true, true,true,false,true,false,true,false,true,true,false,true,true,true,true };
for(int i=0; i<5; i++)
x[i] = 0;
int k=0;//whiles
while(k>=0)
{
x[k] = x[k] + 1;//着色无效继续再目前层搜索有效颜色
while(x[k]<=m && !isValid(b, k, x))
x[k] 50、 = x[k] + 1;
if(x[k]<=m)
{
if(k==n-1)
break; //successelse
//为下一个结点着色
k = k+1;
}
else
{ //返回至上一层
x[k] = 0;
k = k-1;
}
}//print
cout << "Five vertexes' coloration scheme is: " << endl;
for(int j=0; j<5; j++)
cout << x[j] << " ";
co
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818