java学习之路10数组最大值 选择排序 冒泡排序 数组二分查找

 

7.数组选择排序
    public static void selectSort(int arr[]) {
        /*
         * 数组的选择排序:(从小到大的顺序) int arr[35.12.25.69] 第一个位置为焦点进行比较用35和12比较小的放前面[12.35.25.69]
         * 用12和25比较小的放前面[12.35.25.69] 用12和69比较小的放前面[12.35.25.69] 第二个位置为焦点进行比较
         * 用35和25比较小的放前面[12.25.35.69] 用25和69比较小的放前面[12.25.35.69] 第三个位置为焦点进行比较
         * 用35和69比较小的放前面[12.25.35.69] 第四个位置为焦点进行比较 最后一个位置不用比较
         */
        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;
                }
            }
        }
    }

8.冒泡排序

public static void Sort(int[] arr) {
        /*int[] arr={13,6,35,3,9}; 第一个元素开始 13和6比较{6,13,65,3,9} 13和65比较{6,13,65,3,9}
         * 65和3比较{6,13,3,65,9} 65和9比较{6,13,3,9,65} 第二个元素开始 13和3比较{6,3,13,9,65}
         * 13和9比较{6,3,9,13,65} 13和最后面的一位不用比较 第三个元素开始 和剩下的两个不用比较
         */
        for (int i = 0; i < arr.length - 1; i++)// 最后一个不用考虑
        {
            //内循环循环一次就能把当前最大选出来
            for (int j = 0; j < arr.length - 1 - i; j++)// -1防止越界-i是外循环一次,内循环参数与比较的元素个数减
            {
                if (arr[j] > arr[j + 1])// 两个变量交换的方法
                {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

9.数组的普通查找

10.数组的折半查找

猜你喜欢

转载自blog.csdn.net/qq_34491508/article/details/81382580