数组的排序方式(冒泡,直接,反向)

package net.jxatei.jsj.Array;


import java.util.Arrays;


import org.junit.Test;


public class ArraySort
{
    @Test
    public void bubbleSort()
    {//冒泡排序
        int[] arr =
                {1, 3, 5, 7, 9, 2, 10, 8, 4, 6};
        for (int i = 0; i < arr.length - 1; i++)
        {
            for (int j = 0; j < arr.length - 1 - i; j++)
            {
                if (arr[j] > arr[j + 1])
                {
//相邻两个进行比较,大的往下沉,升序
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
//遍历排序的数组
        printArray(arr);
    }


    @Test
    public void directSort()
    {
//直接排序
        int[] arr =
                {1, 3, 5, 7, 9, 2, 10, 8, 4, 6};
        for (int i = 0; i < arr.length - 1; i++)
        {
            for (int j = i + 1; j < arr.length; j++)
            {
                if (arr[i] > arr[j])
                {
//每一次的一个数与其他的进行比较,大的往下沉,升序
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
//遍历排序的数组
        printArray(arr);
    }


    @Test
    public void flipSort()
    {
        int[] arr =
                {1, 3, 5, 7, 9, 2, 10, 8, 4, 6};
        Arrays.sort(arr);//先进行排序
        for (int start = 0, end = arr.length - 1; start < arr.length / 2; start++, end--)
        {


            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;


        }
//遍历排序的数组
        printArray(arr);
    }


    public void printArray(int[] arr)
    {
//遍历排序的数组
        System.out.print("[");
        for (int i : arr)
        {


            if (i == arr[arr.length - 1])
            {
                System.out.print(i);
            }
            else
            {
                System.out.print(i + ",");
            }


        }
        System.out.println("]");
    }
}

 

你可能感兴趣的:(JavaSe)