2021-09-15

数组练习例题


package Helloworld;
//练习,求数组中的最值
/*    public class ArrayExercise {

    public static void main(String[] args){

        int[] array={1,2,3,4,5};
        int max=array[0];
        for (int i=0;i<array.length;i++){
            if(array[i]>max){
                max=array[i];
            }

        }
        System.out. println(max);
    }
}
*/

//练习:数组元素反转
/*
public class ArrayExercise {
    public static void main(String[] args){
int[]array={1,2,3,5,7,8,9,0};
for (int min=0,max=array.length-1;min<max;min++,max--){
    int temp=array[min];
    array[min]=array[max];
    array[max]=temp;

}
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        }
    }
  */
/*
    // 练习:数组可以作为方法的参数
    //当调用方法时,向方法的小括号进行传参,传递进去的是数组的地址值。
    public class ArrayExercise {
    public static void main(String[] args) {
        int[]array={1,2,3,5,7,8,9,0};

        printArray(array);
        System.out.println("AAA");
        printArray(array);
        System.out.println("ASD");
        printArray(array);

    }
    //定义方法:
        public static void printArray(int[]array){
            for (int i = 0; i < array.length; i++) {
                System.out.println(array[i]);
            }
        }

    }

*/
/*
//练习:数组作为方法返回

public class ArrayExercise {
    public static void main(String[] args){
int[]array={1,2,3,5,7,8,9,0};
for (int min=0,max=array.length-1;min<max;min++,max--){
    int temp=array[min];
    array[min]=array[max];
    array[max]=temp;

}
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
        }
    }
*/
//定义一个方法,可以完成将三个数字由大到小输出

    public class ArrayExercise {

            public static void main(String[] args){
                int[]array={1,22,3,5,17,8,9,0};
                for(int i=0;i<array.length-1;i++) {
                    for (int j = 0; j < array.length - i - 1; j++) {
                        if (array[j] > array[j + 1]) {
                            int temp = array[j];
                            array[j] = array[j + 1];
                            array[j + 1] = temp;
                        }
                    }
                }
                for(int i=0;i<array.length;i++)
                    System.out.print(array[i]+"\t");
                System.out.println();
            }
        }
/*
解释:

 先理一下冒泡排序的原理,以从小到大排序为例:每一趟排序,都把最小值放到最前边,直到完成所有数字的比较。

    第一个for,应该指的是这个数组所拥有的元素个数-1,因为如果只有一个数的话,就不需要比较,如果有两数的话,就需要比较1趟,有三个数的话,需要比较2趟,所以第一个for的次数就是元素个数num.length-1。

    第二个for,可以理解为第i趟时,只需要对剩余的num.length-i的元素进行排序。比如一个数组有3个数时,第一趟,只需要比较2次,第二趟,只需要比较1次,所以是num.length-i。
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值