思路:
第一个角标元素与后续角标元素对比,一次遍历完成可以获得当次遍历的最值
然后用第二个角标元素与后续角标元素对比,可以找到第二次遍历的最值,以此类推
但是当到角标为arr.length-1的时候,需要对比的元素也只有arr.length-1此角标的元素,因此外层循环只需遍历到arr.length-1的位置
内层循环从第二个元素开始遍历,然后对比大小.利用temp进行对比后的赋值
代码如下
int[] arr = {2,3,4,5,6,7,1,55,66,77,44,22,111};
for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j < arr.length; j++) { if (arr[i]>arr[j]){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } }
打印结果
排序前
[2, 3, 4, 5, 6, 7, 1, 55, 66, 77, 44, 22, 111]
排序后
[1, 2, 3, 4, 5, 6, 7, 22, 44, 55, 66, 77, 111]