请问这段冒泡法代码是什么意思,最后三句看不懂

int [] array = new int [*] ;
int temp = 0 ;
for (int i = 0 ; i < array.Length - 1 ; i++)
{
for (int j = i + 1 ; j < array.Length ; j++)
{
if (array[j] < array[i])
{
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
}
}
}
temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;

temp = array[j] ;
array[j] = array[j+1] ;
array[j+1] = temp ;
他们的结果是不是一样的?若不一样,他们的效果分别是什么样的?
若一样是不是冒泡法有两种思维方式, 我知道这个I是遍历整个数组,也就是遍历整个数组的次数,J是在某个特定的i时的循环
那上面的i,j代表什么啊,I和J这2层循环分别做什么的?我就是不知道这个,想不通,是什么样的效果,谢谢

temp = array[i] ;
array[i] = array[j] ;
array[j] = temp ;
这3句做的就是哪个小就把哪个“浮”上来
所谓冒泡就是小的值往上“浮”
如果array[j] < array[i]
temp = array[i] ; //把array[i] 的值存入TEMP先
array[i] = array[j] ; //把array[J]的值即2个中比较小的值赋给array[i]
array[j] = temp ; //再把TEMP即array[i]原来的值赋给array[J]
达到小的向前,大的往后的效果

当然不一样,你没理解I和J这2层循环分别做什么的,或者说你根本没仔细去体会什么是冒泡,I是遍历整个数组,J是在某个特定的array[I]时遍历array[I+1]到array[N]
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-23
同意楼上的,结果不一样,它们是冒泡排序,l遍历整个数组,比较两个的大小然后进行排序,排序的顺序不一样,一个是大的在前,一个是大的像后。
相似回答