关于数组排序的2个试题,不知道你会不会

1.找出数组中最大的元素,放到下标为0的位置

package com.qf.test;

import java.util.Arrays;

import org.ietf.jgss.Oid;

public class Demo13 {
public static void main(String[] args) {
int[] arr = {1, 9, 11, 2};
change(arr);
}
public static void change(int [] arr) {

//找出数组中最大的元素,放到下标为0的位置  {11, 9, 1, 2}
//咱们借助于下标
int index = 0;//接收最大值的下标的一个变量
for (int i = 1; i < arr.length; i++) {
if (arr[index] < arr[i]) {
index = i;
}
}
System.out.println(index);//  2
// arr[0] 和arr[2] 交互位置    
//定义一个中间变量
int temp  = arr[index];    //int temp = 11
arr[index] = arr[0];//   arr[2] = 1  {1,9,1,2}
arr[0] = temp;// arr[0] = 11   ==> {11, 9,1, 2}

System.out.println(Arrays.toString(arr));
}
}

2.在上一道题的基础上,不考虑下标为0的元素。 找出数组中剩余最大的元素,放到下标为1的位置

package com.qf.test;

import java.util.Arrays;

public class Demo15 {

    public static void main(String[] args) {
        int[] arr = {1, 2, 11, 9};
        //找出数组中最大的元素,放到下标为0的位置  {11, 9, 1, 2}
        //咱们借助于下标
        int index = 0;//接收最大值的下标的一个变量
        for (int i = 1; i < arr.length; i++) {
            if (arr[index] < arr[i]) {
                index = i;
            }
        }
        System.out.println(index);//  2
        // arr[0] 和arr[2] 交互位置    
        //定义一个中间变量
        int temp  = arr[index];    //int temp = 11
        arr[index] = arr[0];//   arr[2] = 1  {1,9,1,2}
        arr[0] = temp;// arr[0] = 11   ==> {11, 9,1, 2}
        
        System.out.println(Arrays.toString(arr));//[11, 2, 1, 9]
        //不考虑下标为0的元素。 找出数组中剩余最大的元素,放到下标为1的位置
        int index1 = 1;
        for (int i = 2; i < arr.length; i++) {
            if (arr[index1] < arr[i]) {
                index1 = i;
            }
        }
        System.out.println(index1);//3   arr[1] = arr[3]   arr[3] = arr[1]
        int temp1 = arr[index1];
        arr[index1] = arr[1];
        
        arr[1] = temp1;
        System.out.println(Arrays.toString(arr));
        
        
        int index2 = 2;
        for (int i = 3; i < arr.length; i++) {
            if (arr[index2] < arr[i]) {
                index2 = i;
            }
        }
        System.out.println(index2);//3   arr[1] = arr[3]   arr[3] = arr[1]
        int temp2 = arr[index2];
        arr[index2] = arr[2];
        
        arr[2] = temp2;
        System.out.println(Arrays.toString(arr));
        
    }
}

已学废,谢谢~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值