java排序算法_001冒泡排序

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]



你可能感兴趣的:(java算法,经典算法,java排序算法)