JAVA 學習模塊五:排序與查找

這裏寫圖片描述

1.選擇排序

選擇排序是指從第一個開始排序,第一個空排完排第二個。

class  Abb 
{
    public static void main(String[] args) 
    {
        int[] arr = {1,3,5,2,7,6,9};
        slectsort(arr);
        for (int x =0;x<arr.length ;x++ )

        {

            System.out.print(arr[x]);
        }

    }


    public static void slectsort(int[] arr)
    {
        for (int x =0; x<=arr.length-1 ; x++ )
        {
            for (int y=x+1; y<arr.length-1;y++ )
            {
                if (arr[x]>arr[y])

                {
                    int temp = arr[x];
                    arr[x]=arr[y];
                    arr[y] = temp;
                }               
                }
            }

        }
}

2.冒泡排序

class  Abb 
{
    public static void main(String[] args) 
    {
        int[] arr = {1,3,5,2,7,6,9};
        maopaosort(arr);
        for (int x =0;x<arr.length ;x++ )

        {

            System.out.print(arr[x]);
        }

    }


    public static void maopaosort(int[] arr)
    {
        for (int x =0; x<=arr.length-1 ; x++ )
        {
            for (int y=x; y<arr.length-1-x;y++ )
            {
                if (arr[y]>arr[y+1])

                {
                    int temp = arr[y];
                    arr[y]=arr[y+1];
                    arr[y+1] = temp;
                }               
                }
            }

        }
}

三.查找

基本查找方法:

class  Abb 
{
    public static void main(String[] args) 
    {
        int[] arr = {1,2,3,4,5,6,7};
        int b = getindex(arr,10);
        System.out.println(b);


    }


    public static int getindex(int[] arr, int key)
    {
        for (int i =0; i<=arr.length-1 ;i++ )
        {
            if (key==arr[i])

            {
                return(i);
            }


        }
        return -1;

    }
}

二分查找法:

class  Abb 
{
    public static void main(String[] args) 
    {
        int[] arr = {1,2,3,4,5,6,7};
        int b = getindex(arr,5);
        System.out.println(b);


    }


    public static int getindex(int[] arr, int key)
    {
        int mid = (arr.length-1)/2;
        int min = 0;
        int max = arr.length-1;
        while(arr[mid] != key)
        {if (key>arr[mid])
            {
                min = mid+1;
            }
            else if (key < arr[mid])
            {
                max = mid-1;
            }
            if (max<min)
            {
                return -1;
            }
            mid = (max+min)/2;
        }
        return mid;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章