zoukankan      html  css  js  c++  java
  • 2017-11-12

    program:

      将一个数组的最大元素与第一个元素交换,最小元素与最后一个元素交换

    代码如下:

     1 /*
     2  * 求解:将一个数组的最大元素与第一个元素交换,最小元素与最后一个元素交换
     3  * 
     4  * Date Written:2017-11-12
     5  * 
     6  * */
     7 
     8 package test;
     9 
    10 public class TestDemo {
    11     
    12     public static void main(String args[]) {
    13     
    14         int[] nums = {3,6,1,8,0,2,9,2,5};        //自定义数组
    15         
    16         operate(nums);        //调用算法,实现数组的操作
    17         display(nums);        //打印数组
    18     }
    19     
    20     public static void operate(int[] nums) {
    21         
    22         int maxIndex = 0;                //存放最大值下标,初始值为0
    23         int minIndex = nums.length - 1;  //存放最小值下标,初始值为最后一个值下标
    24         boolean flag = false;            //记录最大值和最小值的下标初始值是否发生变化,若果变化,则不进行swap()操作
    25         
    26         /*
    27          * 因为上面最大和最小下标初始值的缘故,所以循环从第二个元素开始到倒数第二个元素结束
    28          * */
    29         for( int i = 1; i < nums.length-1; i++ ) {
    30             
    31             if( nums[i] > nums[maxIndex] ) {        //记录最大值下标
    32                 
    33                 maxIndex = i;
    34                 flag = true;
    35             }
    36             
    37             if( nums[i] < nums[minIndex] ) {        //记录最小值下标
    38                 
    39                 minIndex = i;
    40                 flag = true;
    41             }
    42         }
    43 
    44         if( flag ) {            //如果最大值不在第一位且最小值不在最后一位,就进行交换
    45             swap(nums, maxIndex, minIndex);
    46         }
    47         
    48     }
    49     
    50     /*
    51      * 根据最大值和最小值的下标,将最值元素移动到相应的位置
    52      * */
    53     public static void swap(int[] nums,int maxIndex,int minIndex) {
    54         
    55         int temp = 0;
    56         if( maxIndex != 0 ) {        //最小值交换
    57             
    58             temp = nums[maxIndex];
    59             nums[maxIndex] = nums[0];
    60             nums[0] = temp;
    61         }
    62         
    63         if( minIndex != nums.length - 1 ) {        //最大值交换
    64             
    65             temp = nums[minIndex];
    66             nums[minIndex] = nums[nums.length-1];
    67             nums[nums.length-1] = temp;
    68         }
    69         
    70     }
    71     
    72     //打印数组
    73     public static void display(int[] nums) {
    74         
    75         for( int i = 0; i < nums.length; i++ ) {
    76             
    77             System.out.print(nums[i] + "  ");
    78         }
    79     }
    80 
    81 
    82 }
  • 相关阅读:
    js 树型数据 转 数组
    js 数组转树型结构数据
    计算 手机端页面高度和宽度
    解密优酷智能生产技术,看 AI 赋能内容数字化
    从 FFmpeg 性能加速到端云一体媒体系统优化
    导播上云,把 “虚拟演播厅” 搬到奥运村
    揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
    迈入 8K 时代,AI 驱动超高清 “视” 界到来
    千亿级市场赛道,阿里云视频云拿下 “三连冠”
    50 亿观众的 “云上奥运”,顶级媒体背后的数智化力量
  • 原文地址:https://www.cnblogs.com/caizhen/p/7823149.html
Copyright © 2011-2022 走看看