zoukankan      html  css  js  c++  java
  • 基础数组算法问题

      今日,java课上机,旁边一同学让我写一个排序算法,虽然之前学过数据结构,但当时我却真心没回忆起来,于是乎,课后,我回到宿舍,用Java将这几个基本的数组排序问题写了一下。其实,看起来很简单,可是当时确实没有回忆起来。很不应该!以下代码我自己测试了,均能运行。写这篇博文,也是为了提醒我自己,以后这种基本的东西必须得让自己多留几个心眼!

    package exercise;
    
    public class TestArray {
        //求数组的最大值
        public int getMax(int[] arr){
            int max = arr[0];
            for(int i = 1;i<arr.length;i++){
                if(max < arr[i]){
                    max = arr[i];
                }
            }
            return max;
        }
        //求数组的最小值
        public int getMin(int[] arr){
            int min = arr[0];
            for(int i = 1;i<arr.length;i++){
                if(min >arr[i]){
                    min = arr[i];
                }
            }
            return min;
            
        }
        //遍历数组元素
        public void printArray(int[] arr){
            System.out.println("[");
            for(int i = 0;i<arr.length;i++){
                System.out.print(arr[i]+"	");
            }
            System.out.println("]");
        }
        //求数组的的平均数
        public int avg(int[] arr){
            /*int sum = 0;
            for(int i = 0;i<arr.length;i++){
                sum += arr[i];
            }*/
            int sum = getSum(arr);
            return sum/arr.length;
            
        }
        //求数组的总和
        public int getSum(int[] arr){
            int sum = 0;
            for(int i = 0;i<arr.length;i++){
                sum += arr[i];
            }
            return sum;
        }
        
        //数组的反转
        public int[] reverse(int[] arr){
            for(int x = 0,y = arr.length-1;x<y;x++,y--){
                int temp = arr[x];
                arr[x] = arr[y];
                arr[y] = temp;
            }
            return arr;
        }
        //实现数组的复制
        public int[] copy(int[] arr){
            /*
             * int[] arr1 = arr;
             * return arr1; 
             * */
            int[] arr1 = new int[arr.length];//设置复制后的数组长度与原数组的长度一样
            for(int i = 0;i<arr.length;i++){
                arr1[i] = arr[i];
            }
            return arr1;
            
        }
        //对数组进行排序--冒泡排序
        public void sort(int[] arr,String desc){
            if(desc == "asc"){//ascend:表示从小到大
            for(int i = 0;i<arr.length;i++){
                for(int j = 0;j<arr.length-1-i;j++){
                    if(arr[j]>arr[j+1]){
                        swap(arr,j,j+1);
                    }
                }
            }
          }else if( desc == "desc"){//descend:表示从大到小
              for(int i = 0;i<arr.length;i++){
                    for(int j = 0;j<arr.length-1-i;j++){
                        if(arr[j] < arr[j+1]){
                            swap(arr,j,j+1);
                        }
                    }
                }
             }
          else{
              System.out.println("您输入的排序方式有误");
          }
        }
        //交换数组中指定位置的元素--交换数组arr中索引为i和j位置处的元素
        public void swap(int[] arr,int i,int j){
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        
        
    }
    package exercise;
    import exercise.TestArray;
    
    public class TestArray1 {
       public static void main(String[] args){
           int[] arr = new int[]{12,4,23,56,67,36,57,23,45,14,-23,-4};
           TestArray t = new TestArray();
           
           int avg = t.avg(arr);
           System.out.println("avg :"+avg);
           
           int max = t.getMax(arr);
           System.out.println("Max:"+max);
           
           
           
           System.out.println("反转之前!");
           t.printArray(arr);
           
           t.reverse(arr);
           
           System.out.println("反转之后!");
           t.printArray(arr);
       }
    }
  • 相关阅读:
    TensorFlow 一步一步实现卷积神经网络
    TensorFlow 卷积神经网络手写数字识别数据集介绍
    深度学习之激活函数
    使用Keras进行深度学习:(二)CNN讲解及实践
    计算智能(CI)之粒子群优化算法(PSO)(一)
    C# SqlBulkCopy
    Oracle 连接数据库
    C# DataTable转换为Html 用Html的方式预览DataTable的数据
    C# 中文判断
    C# Excel To DataTable
  • 原文地址:https://www.cnblogs.com/Terminaling/p/4095859.html
Copyright © 2011-2022 走看看