【发布时间】:2010-05-30 13:17:02
【问题描述】:
例如,我们有以下数组:
char data[]=new char[]{'A','S','O','R','T','I','N','G','E','X','A','M','P','L','E'};
还有一个索引数组:
int a[]=new int[]{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
void insitu (char data[], int a[], N)
{
for (int i=0;i<N;i++)
{
char v=data[i];
int j, int k;
for (k = i; a[k] != i; k = a[j], a[j]=j)
{
j=k;
data[k]=data[a[k];
}
data[k]=v;
a[k]=k;
}
}
我的问题是应该将j 初始化为什么。当我运行这段代码时,它要求我初始化j;我该怎么办?
【问题讨论】:
-
for (k=i;a[k]!=i;k=a[j];a[j]=j)这一行无法编译。这里有 4 个部分。 -
这一行也无法编译
data[k]=data[a[k];。 -
请将您的问题标记为作业,这显然不适合生产
-
所以这段代码有很多错误是吗?什么是正确的形式?
-
@davit-datuashvili 那是什么?
标签: algorithm