zoukankan      html  css  js  c++  java
  • 第三节 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 ;
    }
    }

     
  • 相关阅读:
    造出最好的 CMS 轮子
    搭建开发框架Express,实现Web网站登录验证
    QueryOver<T>
    NVelocity
    .NET 相依性注入
    Unity 3.5
    java socket 的参数选项解读(转)
    换种方式去分页(转)
    上海市居住证办理材料及流程
    java动态代理
  • 原文地址:https://www.cnblogs.com/xiaoshuaidiboke/p/7143424.html
Copyright © 2011-2022 走看看