第三节 java 数组(循环遍历、获取数组的最值(最大值和最小值)、选择排序、冒泡排序、练习控制台输出大写的A)

获取数组的最值(最大值和最小值)

思路: 1、获取最值需要进行比较,每一次比较都会有一个较大的值,因为该 值不确定,需要一个变量进行临储

2、让数组中的每一个元素都和这个变量中的值进行比较,如果大于了 变量中的值,就用该变量记录较大值。

3、当所有的元素都比较完成,那么该变量中存储的就是数组中最大值

例子://最大值

int arr[] = {1,2,3,4,5,};

int max = arr[0];

  for(int a=0;a<arr.length;a++){

{if(arr[a])>arr[max]{

mac=arr[a];}

}

system.out.println("数组arr最大值为:"+max);同理去最小值。

快捷上升排序: Arrays类中的sort()使用的是“经过调优的快速排序法”;

函数原型:static void sort(int[] a)   对指定的 int 型数组按数字升序进行排序。

       static void sort(int[] a, int fromIndex, int toIndex)  对指定 int 型数组的指定范围按数字升序进行排序。 

import java.util.Arrays;
public class ArraysSort_11 {
    public static void main(String args[])
    {
        int[] a={1,4,-1,5,0};
        Arrays.sort(a);
        //数组a[]的内容变为{-1,0,1,4,5}
        for(int i=0;i<a.length;i++)
            System.out.print(a[i]+"  ");
    }
}

选择排序   

选择排序:一开始默认角标为0的数为最小的数,依次和后面的数比较(最后一位数由于已经与前面数进行了比较,所有不用再次比较:length-1;),发现小的记录下标,最
后把角标为0的数和最后的角标数交换,第二次从角标为1的数开始遍历;


int arr[] = {1,2,3,4,5};
for(int i = 0;i < arr.length-1;i++){      //最后一位数由于已经与前面数进行了比较,所有不用再次比较:length-1;
    for(int a = i+1;a<arr.length;a++){    //a=i+1;从角标1开始与i=0的值进行大小比较,共比较4次,得出a<arr.length;
        if(arr[i] > arr[a]){
            int temp = arr[a];
            arr[a] = arr[i];
            arr[i] = temp;
        }
    }
}

System.out.print("{");
    for(int b = 0;b < arr.length;b++){
        if(b != arr.length-1){
         System.out.print(arr[b]+",");
        }else{
        System.out.print(arr[b]+"}");   
        }
    }   

冒泡排序

冒泡排序:是通过两两比较,把比较的得到的最大值或最小值放到数组的最后面,然后依次循环
第一次取到最大值或者最小值,进入第二次循环,第二次循环也是两两比较,因为第
一次循环的时候我们的得到的值已经和前面的值进行了比较判断,所以第二次循环的
时候就不需要再把前一次比较得到的值再进行一个比较,所以我们的第二个for循环里
面会有一个.length-i-1;

int[] arr = {3,2,4,7,6,5,9,8,10,20,1};
for(int a = 0;a<arr.length-1;a++){
for(int b = 0;b<arr.length-a-1;b++){
if(arr[b]>arr[b+1]){
int temp = arr.[b];
arr.[b] = arr.[b+1];
arr.[b+1] = temp ;
}
}

 
原文地址:https://www.cnblogs.com/xiaoshuaidiboke/p/7143424.html