冒泡排序算法(详解)

    xiaoxiao2022-07-12  155

    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"); } }
    最新回复(0)