public void sort(int arr[])
{
/*i表示第几轮排序,所以初始值i=1
*n个元素,一共需要n-1轮排序
* 所以为i<arr.length
* */
for (int i = 1; i < arr.length; i++)
{
/*第1轮,最后一次排序是倒数第一位和倒数第二位,即arr[len-1]与arr[len-2]
* 第i轮,最后一次排序为arr[len-i]与arr[len-i-1]两个比较
* */
for (int j=0;j<arr.length-i;j++)//j是数组索引,所以初始值为0
{/*参考图示第7句的逻辑规律
第一轮排序,i=1,最后一次比较是倒数第二位和倒数第一位比较。j右移的最后一位 j=len-2
第二轮排序,i=2,最后一次比较是倒数第三位和倒数第二位比较。j右移的最后一位 j=len-3
依此规律,第i,j最后一位j=len-i-1
所以内层循环j<len-i
*/
if (arr[j]>arr[j+1])//相邻数据比较,如左边大,则交换两者位置
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
03-04
339
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-05
235
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-22
719
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交