簡單排序

snake_hand發表於2013-04-01

    public static void bubbleSort()
    {
        int temp = 0;
        for (int i = randomNumbers.length - 1; i > 0; i--)
        {
            for (int j = 1; j <= i; j++)
            {
                if (randomNumbers[j - 1] > randomNumbers[j])
                {
                    temp = randomNumbers[j - 1];
                    randomNumbers[j - 1] = randomNumbers[j];
                    randomNumbers[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(randomNumbers));
    }

    public static void selectSort()
    {
        for (int i = 0; i < randomNumbers.length; i++)
        {
            int min = i;
            for (int j = i + 1; j < randomNumbers.length; j++)
            {
                if (randomNumbers[min] > randomNumbers[j])
                {
                    min = j;
                }
            }
            if (i < randomNumbers.length - 1)
            {
                int temp = randomNumbers[min];
                randomNumbers[min] = randomNumbers[i];
                randomNumbers[i] = temp;
            }
        }
        System.out.println(Arrays.toString(randomNumbers));
    }

    public static void insertionSort()
    {
        for (int i = 0; i < randomNumbers.length - 1; i++)
        {
            // i就是有序數列的最後一個位置
            // k要插入有序的資料位置
            int j = i + 1;// j就是無序數列的第一個位置
            if (randomNumbers[i] > randomNumbers[j])
            {
                for (int k = j; k > 0 && randomNumbers[k - 1] > randomNumbers[k]; k--)
                {
                    int temp = randomNumbers[k];
                    randomNumbers[k] = randomNumbers[k - 1];
                    randomNumbers[k - 1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(randomNumbers));
    }

相關文章