日期:2014-05-20  浏览次数:20796 次

一个冒泡排序的问题。
冒泡排序 5个数
for(int i=len-1;i>=1;i--)
for(int j=0;j<i-1 ;j++){
if(a[j].compare(a[j+1])>0){
Date temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
j排序到下标为3的时候结束了(j<i-1), 那下标为4的怎么比较得到啊?
怎么总感觉 应该是 j<i啊;才能比较得到下标为4的数

------解决方案--------------------
外层循环是表示排序的趟数,n个记录,最多进行n-1次排序,
你后面那个代码for(int j=0;j<i-1 ;j++)里面确实应该是j<i,因为这时你的i已经等于length-1了~