冒泡排序
冒泡排序在面试当中有时候会遇到,在这里做个总结:
代码:
package com.bedrock.makemoney;
//冒泡排序测试
public class BubbleSortTest {
public static void main(String[] args)
{
int [] arr = {8,7,6,5};
//int [] arr = {5,6,7,8};
for (int i = 0; i < arr.length-1; i++)//第一层循环:只需要循环(arr.length-1)次
{
System.out.println("第一层循环:"+(i+1));
for (int j = 0; j < arr.length - 1 -i; j++)//第二层循环:只需要循环(arr.length - 1 -i)次,循环次数不断减少
{
System.out.println("==================第二层循环:===="+(j+1)+"====");
System.out.println("==================第二层循环:"+arr[j]+"和"+arr[j+1]+"比较");
if (arr[j] > arr[j+1])//升序排序(>) //降序排序(<)
{
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
//打印输出
StringBuilder stringBuilder = new StringBuilder("第"+(i+1)+"次比较的结果:{");
for (int k:arr)
{
stringBuilder.append(k).append(",");
}
System.out.println(stringBuilder.substring(0,stringBuilder.length()-1)+"}");
}
//打印输出
StringBuilder stringBuilder = new StringBuilder("最终比较的结果:{");
for (int i:arr)
{
stringBuilder.append(i).append(",");
}
System.out.println(stringBuilder.substring(0,stringBuilder.length()-1)+"}");
}
}
测试结果:
第一层循环:1
==================第二层循环:====1====
==================第二层循环:8和7比较
==================第二层循环:====2====
==================第二层循环:8和6比较
==================第二层循环:====3====
==================第二层循环:8和5比较
第1次比较的结果:{7,6,5,8}
第一层循环:2
==================第二层循环:====1====
==================第二层循环:7和6比较
==================第二层循环:====2====
==================第二层循环:7和5比较
第2次比较的结果:{6,5,7,8}
第一层循环:3
==================第二层循环:====1====
==================第二层循环:6和5比较
第3次比较的结果:{5,6,7,8}
最终比较的结果:{5,6,7,8}

浙公网安备 33010602011771号