7.16扣...

思路:本题定义两个左右指针,右侧指针定义外循环,左侧指针定义内循环,每次外循环右侧right指针不变,左侧指针left从下标0开始,到right-1,对比Math.pow(arry[left], 2)与Math.pow(arry[right]即下标为left的数据的平方的下标为right的数据的平方的大小,如果Math.pow(arry[left]> Math.pow(arry[right],交换数据,否则left++,一层循环后,right--。

此类题目适宜画图画图画图!!!!!!

package binarySearch;

public class squareOfSortedArray {
    public static void main(String[] args) {
        int [] arry = {-9,-6,1,3,5,7,10,22};
        int jueduizhi [] =jueduizhipaixv(arry);
        shuchu(jueduizhi);
    }

    private static void shuchu(int[] jueduizhi) {//将每个数据平方,输出
        for (int i = 0; i < jueduizhi.length; i++) {
            int pow = jueduizhi[i]* jueduizhi[i];
            jueduizhi[i]=pow;
            System.out.println(jueduizhi[i]);
        }
    }
    private static int [] jueduizhipaixv(int[] arry) {//实现绝对值大小的排序
        for (int right = arry.length-1; right>0; right--){
            for (int left = 0;left<right-1;left++){
                if (Math.pow(arry[left], 2)>Math.pow(arry[right], 2)){
                    int temp;
                    temp= arry[left];
                    arry[left]= arry[right];
                    arry[right]=temp;
                }
            }
        }
       return arry;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值