public void run3(){
/*冒泡排序算法
将最大的,或者最小的值,先找出来,然后互换
,再将第二大的或第二小的值找出来互换
一直到数组长度结束*/
int[] i = {1,6,33,21,4,66};
int a = 0;
for( a=0;a<i.length;a++){
System.out.print("排序前:"+i[a]+"\t");
}
System.out.println();
int temp;
//最外层的循环1开始,到6结束
//为什么从1开始?防止内层循环 k<i.length-j 下标越界
//内层循环从0开始,到6-1结束(六减一)
for(int j=1;j<i.length;j++){
//下方for循环里 k的取值范围
//0-5 第一步
//0-4 第二步
//0-3 第三步
//0-2 第四步
//0-1 第五步
for(int k=0;k<i.length-j;k++){
//下方if的判断步骤
//0 vs 1 第一步第一次
//1 vs 2 第一步第二次
//2 vs 3 第一步第三次
//3 vs 4 第一步第四次
//4 vs 5 第一步第五次
//0 vs 1 第二步第一次
//1 vs 2 第二步第二次
//2 vs 3 第二步第三次
//3 vs 4 第二步第四次
//0 vs 1 第三步第一次
//1 vs 2 第三步第二次
//2 vs 3 第三步第三次
//0 vs 1 第四步第一次
//1 vs 2 第四步第二次
//0 vs 1 第五步第一次
if(i[k]>i[k+1]){//第k个比第k+1个大,就交换
temp = i[k];
i[k] = i[k+1];
i[k+1] = temp;
}
}
}
for( a=0;a<i.length;a++){
System.out.print("排序后:"+i[a]+"\t");
}
}
冒泡排序算法(详解)
最新推荐文章于 2022-01-20 11:25:06 发布