代码 :
public static void main(String[] args) {
soft(new int[] {6,3,18,95,50,10,87,65,120,765,8,5,4,758,4,58,45,4,4,5,1,14,4,1,1,45,4,55,42115,12});
}
/**
* @param is
* 需要进行排序的数组
*/
private static void soft(int[] is) {
//进行交换时临时存储的变量temp
int temp = 0;
/*
* 外层循环控制遍历的次数 只遍历数组的长度-1次,因为每次遍历都是两个值进行比较
* i = 1 ; i < is.length ; 假设数组长度为10,则执行9次
*/
for(int i=1;i<is.length;i++) {
/*
* 内层循环控制每次比较进行交换的数据,第一次遍历时交换数组的长度-1,第二次遍历时交换数组的长度-2,
* 这也是为什么循环结束条件定义为is.length-i
*/
for(int j=0;j<is.length-i;j++) {
if(is[j]>is[j+1]) {
temp = is[j];
is[j]=is[j+1];
is[j+1]=temp;
}
}
}
System.out.println("排序后 : " + Arrays.toString(is));
}
执行结果 :