package wzs.sort;
import java.util.Arrays;
//冒泡排序
//基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,
//自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。
//即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
//54321
//开始冒泡...
//45321
//43521
//43251
//43215
//第一轮结束...
//34215
//32415
//32145
//第二轮结束...
//23145
//21345
//第三轮结束...
//12345
//第四轮结束...
public class Test_wzs001
{
public static void main(String[] args)
{
int[] intArray =
{
10, 9, 5, 3, 6, 4, 7, 8, 2, 1
};
bubbleSort(intArray);
}
/**
* 冒泡排序
* @param intArray 需要排序的数组
*/
static void bubbleSort(int[] intArray)
{
int temp;
// i表示第几次比较
for (int i = 0; i < intArray.length - 1; i++)
{
// j表示比较次数
for (int j = 0; j < intArray.length - 1 - i; j++)
{
if (intArray[j] > intArray[j + 1])
{
temp = intArray[j];
intArray[j] = intArray[j + 1];
intArray[j + 1] = temp;
}
}
System.out.println("第" + (i + 1) + "排序:" + Arrays.toString(intArray));
}
System.out.println("\n排序后结果:" + Arrays.toString(intArray));
}
}
输出结果:
第1排序:[9, 5, 3, 6, 4, 7, 8, 2, 1, 10]
第2排序:[5, 3, 6, 4, 7, 8, 2, 1, 9, 10]
第3排序:[3, 5, 4, 6, 7, 2, 1, 8, 9, 10]
第4排序:[3, 4, 5, 6, 2, 1, 7, 8, 9, 10]
第5排序:[3, 4, 5, 2, 1, 6, 7, 8, 9, 10]
第6排序:[3, 4, 2, 1, 5, 6, 7, 8, 9, 10]
第7排序:[3, 2, 1, 4, 5, 6, 7, 8, 9, 10]
第8排序:[2, 1, 3, 4, 5, 6, 7, 8, 9, 10]
第9排序:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
排序后结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]