public class sortem {
/**
* @param args
*/
private static void sort(int s[], int len){
boolean swap = true;
int upperBound = 0;
while(swap){
swap = false;
for(int i=0;i<len-(upperBound+1);i++)
if(s[i]> s[i+1]){
int t=s[i];
s[i]=s[i+1];
s[i+1] = t;
swap = true;
}
upperBound++;
}
}
private static void print(int s[], int len){
for(int i=0;i<len;i++)
System.out.println(s[i]);
}
public static void main(String[] args) {
int size = 10;
int s[] = new int [size];
s[0] = 23; s[1] = 34; s[2] = 56; s[3] = 17; s[4] = 61;
s[5] = 3; s[6] = 92; s[7] = 44; s[8] = 19; s[9] = 63;
sort(s, size);
print(s, size);
}
}
这是我的问题:
upperBound 变量在 for 循环之外和 while 循环之内,但为什么我需要这个变量。我不确定我是否理解它对 for 循环的“控制”。当我最初自己写这个时,我没有这个 upperBound 变量,当 i 变得大于数组的长度时,我的循环将结束,如下所示:
for(int i = 0; i > len; i++)
它没有用......有人可以帮我理解这个 upperBound 变量如何帮助控制循环边界吗?我看到它旁边的 +1 是第一次运行所必需的,但它与将 upperBound 初始化为 1 而不是 0 相同吗?