• 数组的常用算法 (最大值 最小值 平均值 总和 复制 反转 排序)


    1.求数组的最大值,最小值,平均值 ,总和

    2.数组的复制,反转

    3.数组元素的排序:

    冒泡排序思想:相邻两元素进行比较,如果需要则进行交换,每完成一次循环就将最大元素排到最后(从小到大排序),下一次循环就将其它的数进行类似操作

    直接排序思想:那第一个和后面的比较遇到比它小的互换,接着再和后面的比较,一轮下来可以得到第一位最小元素,后面同理。都是拿第一个去比较,得到这轮最小的

    public class TestArray3 {
        public static void main(String[] args) {
            int[] arr = new int[] { 12, 12, 345, 34, -32, -58, 232, 43 };
            // 最大值
            int max = arr[0];
            for (int i = 1; i < arr.length; i++) {
                if (max < arr[i]) {
                    max = arr[i];
                }
            }
            System.out.println("最大值:" + max);
    
            // 最小值
            int min = arr[0];
            for (int i = 1; i < arr.length; i++) {
                if (min > arr[i]) {
                    min = arr[i];
                }
            }
            System.out.println("最小值:" + min);
    
            // 总和
            int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                sum += arr[i];
            }
            System.out.println("总和:" + sum);
    
            // 平均值
            int avg = 0;
            avg = sum / arr.length;
            System.out.println("平均值:" + avg);
    
            // 数组元素的复制和反转
            int[] arr1 = new int[arr.length];
            for (int i = 0; i < arr1.length; i++) {
                arr1[i] = arr[i];
                System.out.print(arr1[i] + "	");
            }
            System.out.println();
    
            // 数组元素的反转
            // 方法一:
            /*
             * for (int i = 0; i < arr.length / 2; i++) { int temp = arr[i]; arr[i]
             * = arr[arr.length - 1 - i]; arr[arr.length - 1 - i] = temp; }
             */
            // 方法二:
            for (int x = 0, y = arr.length - 1; x < y; x++, y--) {
                int temp = arr[x];
                arr[x] = arr[y];
                arr[y] = temp;
            }
    
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + "	");
            }
            System.out.println();
    
            // 排序:使用冒泡排序 使数组从小到大排序
            /*
             * for (int i = 0; i < arr.length - 1; i++) {// 轮数 for (int j = 0; j <
             * arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp =
             * arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }
             */
            // 直接选择排序:小到大
            for (int i = 0; i < arr.length - 1; i++) {
                int t = i;// 默认i处是最小的
                for (int j = i; j < arr.length; j++) {
                    // 一旦发现i后面存在比其还小的元素,就记录那个元素的下角标
                    if (arr[t] > arr[j]) {
                        t = j;
                    }
                }
                if (t != i) {
                    int temp = arr[t];
                    arr[t] = arr[i];
                    arr[i] = temp;
                }
            }
    
            
            System.out.println("排序后:");
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + "	");
            }
        }
    }
    All that work will definitely pay off
  • 相关阅读:
    CSS learnning...
    软件工程课程建议
    结对编程(三)
    结对编程(二)
    关于结对编程的感想
    关于“Durian”调查问卷的心得体会
    我的软件工程课目标
    软件工程课程建议
    进阶版《结对编程》
    结对编程实现四则运算
  • 原文地址:https://www.cnblogs.com/afangfang/p/12462081.html
Copyright © 2020-2023  润新知