zoukankan      html  css  js  c++  java
  • 数组的常用算法问题

    1.求数组元素的最大值、最小值、和、平均数

    2.数组的复制和反转

    情况1:


    情况2:(如何实现复制)


    数组的反转:
    // 数组元素的反转
    // 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;
    }

    拓展:String str = "abcdefg";

    数组的排序:
    插入排序
    直接插入排序、折半插入排序、Shell排序

    交换排序
    冒泡排序、快速排序(或分区交换排序)

    选择排序
    简单选择排序、堆排序

    归并排序

    基数排序


    // 使用冒泡排序使数组元素从小到大排列
    // 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;
    // }
    // }

    还可以调用:Arrays工具类:Arrays.sort(arr);

  • 相关阅读:
    Arpa's weak amphitheater and Mehrdad's valuable Hoses
    Arpa's loud Owf and Mehrdad's evil plan
    穷游中国在统题
    2016 ACM Amman Collegiate Programming Contest D Rectangles
    区间求和
    Redis 连接池的问题
    eBay 使用ReviseInventoryStatusCall调整库存和价格
    eBay Notification介绍
    Quartz.Net 配置模板范例
    Quartz.net misfire实践
  • 原文地址:https://www.cnblogs.com/wzlbigdata/p/8383569.html
Copyright © 2011-2022 走看看