问题是,当数据排序时,它会加倍:
数据: 20,5,9,8,7
输出为:
20, 5, 9, 8, 7
5, 20, 9, 8 ,7
5, 20, 9, 8 ,7
5, 20, 9, 8 ,7
5, 20, 9, 8 ,7
5, 9, 20, 8 ,7
5, 8, 20, 9 ,7
5, 7, 20, 8 ,7
5, 7, 9, 20 ,7
5, 7, 8, 20 ,7
5, 7, 8, 9 ,205,20,9,8 ,7部分重复了4次,如何删除?
for(i=0; i<r; i++)
{
System.out.print(data[i]+"\t");
}
System.out.print("\n");
for(i=0; i<size; i++)
{
smallest=i;
for(j=i+1; j<size; j++)
{
if(data[i] > data[j] )
{
temp = data[j];
data[j] = data[smallest];
data[smallest] = temp;
}
for(k=0; k<size; k++)
System.out.print(data[k]+"\t");
System.out.print("\n");
}
}发布于 2014-08-30 21:52:22
出现520987是因为一旦您将5放置在点0中,它就不再需要被交换。5是数组中最小的一项,因此它只需要检查数组中的其他元素以确保。删除这些迭代的唯一方法是更改排序方法
发布于 2014-08-30 22:04:56
错误代码显示数据:U删除k的循环而不删除j的循环
for(i=0; i<r; i++)
{
System.out.print(data[i]+"\t");
}
System.out.print("\n");
for(i=0; i<size; i++)
{
smallest=i;
for(j=i+1; j<size; j++)
{
if(data[i] > data[j] )
{
temp = data[j];
data[j] = data[smallest];
data[smallest] = temp;
}
}
for(k=0; k<size; k++)
{
System.out.print(data[k]+"\t");
System.out.print("\n");
}
}https://stackoverflow.com/questions/25583042
复制相似问题