public class Quicks
{
public static void main(String args[])
{ int temp;
int[] list={5,1,7,6,4,0,8,9};
int i;
for(i=0;i<=6;i++)
{
if(list[i]>list[i+1]);
{
temp=list[i+1];
list[i+1]=list[i];
list[i]=temp;
}
}
for(i=0;i<=6;i++)
{
System.out.println(list[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出1 7 6 4 0 8 9
我的第一个怀疑是5
为什么7和6没有被交换
你的第一个问题.
你的循环:
for(i=0;i<=6;i++)
{
System.out.println(list[i]);
}
Run Code Online (Sandbox Code Playgroud)
将会:
for(i=0;i<=7;i++)
{
System.out.println(list[i]);
}
Run Code Online (Sandbox Code Playgroud)
因为你的数组的大小是8而没有7,而且6-0 + 1 = 7,所以你不打印最后一个元素.
如果你对代码进行分析,你会认为循环将数组的第一个元素移动到最后一个位置.如果要对数组进行排序,则不是代码.