/* 
给定一个数组{4,5,3,2,1,6} 
需求:获取元素中的最大值与最小值; 
         
        思路: 
                1:要获取元素中的最大值,可以通过遍历的方式. 
                2:获取最值需要比较,每一次比较都会有一个较大的值,因为该值不确定, 
                用一个变量临时存储. 
                3:让数组所有的元素都和该值比较,如果大于该变量的值,就用该变量记录较大的值. 
                4:当所有的元素比较完成,那么该变量存储的就是最大的值了. 
        步骤: 
                1:定义变量,初始化数组中的任何一个元素即可. 
                2:通过循环语句对数组进行遍历. 
                3:在变量过程中定义判断语句,如果遍历到的元素比变量中的元素大,那么就赋值给该变量. 
                需要定义一个功能,以便提高复用性. 
                1'明确结果:数组中最大的元素,int. 
                2,未知内容:一个int[]. 
*/                         
class HanShu_Test { 
        public static void main(String[] args) { 
                 
                int[] arr ={4,5,3,2,1,6}; 
                bubbleSort(arr); 
                //selectSort(arr); 
                printArray(arr); 
                //int min = getMin(arr); 
                //int max = getMax_2(arr); 
                        //System.out.println("max="+max); 
                        //System.out.println("min="+min); 
        } 
 
        public static int getMax(int[] arr) {//传入一个int[] arr的数组. 
                int max = arr[0];//定义一个变量. 
                for(int x =1; x<arr.length; x++) { 
                        if(arr[x]>max) 
                                max = arr[x]; 
                                 
                } 
                        return max; 
        } 
        /* 
        获取最值的另一种方式,是不是可以把临时变量初始化为0呢? 
        可以,这种方式其实是在初始化数组中的角标. 
        */ 
        public static int getMax_2(int[] arr) { 
         
                int max = 0;//初始化数组中的角标 
                for (int x =1; x<arr.length; x++) { 
                        if(arr[x]>arr[max]) 
                                max = x; 
                } 
                        return arr[max]; 
        } 
        //获取最小值 
        public static int getMin(int[] arr) { 
         
                int min = 0; 
                for (int x =1 ;x<arr.length; x++){ 
                        if(arr[x]<arr[min]) 
                                min = x; 
                } 
                                return arr[min]; 
        } 
         
        //选择排序 
        public static void selectSort(int[] arr) { 
         
                for (int x =0; x<arr.length-1; x++) { 
                        for (int y = x+1; y<arr.length;y++ ) { 
                                if(arr[x]>arr[y]) { 
                                        /*int temp = arr[x];//定义一个变量进行元素换位置操作 
                                        arr[x] = arr[y]; 
                                        arr[y] = temp;*/ 
                                        swap(arr,x,y); 
                                } 
 
                        } 
                } 
         
        } 
        //冒泡排序 
        public static void bubbleSort(int[] arr) { 
                 
                for (int x =0;x<arr.length-1 ; x++) { 
                        for (int y = 0; y<arr.length-x-1; y++) {//-x:让每一次比较的元素减少,-1:避免角标越界. 
                                if (arr[y]>arr[y+1]) { 
                                        /*int temp = arr[y]; 
                                        arr[y] = arr[y+1]; 
                                        arr[y+1] = temp;*/ 
                                        swap (arr,y,y+1); 
                                } 
                        } 
                } 
         
        } 
        /* 
        发现无论什么排序都需要对满足条件的元素进行位置的置换. 
        所以可以把这部分相同的部分提取出来,单独分装一个功能. 
         
        */ 
        public static void swap(int[] arr,int a,int b) { 
         
                int temp = arr[a]; 
                arr[a] = arr[b]; 
                arr[b] = temp; 
        } 
         
        public static void printArray(int[] arr) {//定义一个功能打印数组中的元素. 
 
                System.out.print("[");//给数组加上一对[] 
                for (int x =0;x<arr.length ; x++) { 
                        if (x!=arr.length-1) //定义一个if语句如果x不等于数组中的最后一个元素那么就执行下面的输出语句. 
                                System.out.print(arr[x]+", "); 
                        else 
                                System.out.println(arr[x]+"]"); 
 
                         
                } 
         
         
        } 
} 
 
 
 |   
        
 
    
    
    
     
 
 |