zoukankan      html  css  js  c++  java
  • 原创| 输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

    思路:
     
     2 5 8 2 8 1 1 9
     
    最小的一个元素是1,最大的一个元素是9
     
    用*min来指向最小的那个元素。初始化的时候,*min指向第一个元素,指向2.
     
    这个用一个暂存的变量temp1来存储最小值,初始值指向第一个元素。temp的作用是可以用来不断进行值比较。
     
    通过for循环遍历数组,找到最小的那个值,便记下最小值的位置(因为最小值可以有重复的,记前面那个即可)。
     
    这样有temp=*min;
     
    (还有一种方法的时间复杂度为O(n!));
     
    用*max来指向最大的那个元素。初始化的时候,*max指向第一个元素,指向2.
     
    这个用一个暂存的变量temp2来存储最大值,初始值指向第一个元素。temp2的作用是可以用来不断进行值比较。
     
    通过for循环遍历数组,找到最大的那个值,便记下最大值的位置(因为最大值可以有重复的,记前面那个即可)。
     
    这样有temp=*max;
     
    最后便是交换函数,用来实现数组交换的。
     
    将*min和a[0]交换
    将*max和a[1]交换。
     
    将数组输出出来。
     
     
    public void transfer(int []a){
    int min=0; //默认位置指向第一位
    int max=0; //默认位置指向第一位
    int temp1=a[0];
    int temp2=a[0];
    //找最小的数;
    for(int i=1;i<a.length;i++){
    if(a[i]<temp1){
    temp1=a[i];
    min=i;
    }
    }

    //找最大的数;
    for(int i=1;i<a.length;i++){
    if(a[i]>temp2){
    temp2=a[i];
    max=i;
    }
    }
    //最大的数跟第一个元素交换
    for(int i=0;i<a.length;i++){
    int temp3=a[max];
    a[max]=a[0];
    a[0]=temp;
    }
    //最小的数跟最后一个元素交换
    for(int i=0;i<a.length;i++){
    int temp=a[min];
    a[min]=a[a.length-1];
    a[a.length-1]=temp;
    }
    for(int i=0;i<a.length;i++){
    System.out.println(a[i]+" ");
    }
    }
     
    本人微信:a25828119.有问题欢迎交流~
    才疏学浅,欢迎交流
  • 相关阅读:
    springmvc中request的线程安全问题
    日志帮助类
    模态框的实现
    getopts的使用方法
    自动生成头文件的脚本
    shell脚本中出现图形化界面
    Linux Centos关机命令
    Linux下IP的存储位置
    tar只解压tar包中某个文件
    Swift 笔记1
  • 原文地址:https://www.cnblogs.com/chengxuyuanzrc/p/13714159.html
Copyright © 2011-2022 走看看