迭代和递归基本思想

来源:互联网 发布:zimg php 编辑:程序博客网 时间:2024/06/07 17:45

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class IterationAndRecursion {

public static void main(String[] args) {    int[] arr = { 1, 2, 3, 4, 5 };    System.out.println(sum1(arr, arr.length));    reverse(arr, 1, 4);    System.out.println(sum2(arr, 0, arr.length - 1));    max2(arr,0,arr.length);    max2better(arr,0,arr.length);}//数组中前2大元素改进private static void max2better(int[] arr, int low, int high) {    int max1,max2;    if (arr[max1 = low] < arr[max2 = low + 1]) {        arr[max1] = arr[max1] ^ arr[max2];        arr[max2] = arr[max1] ^ arr[max2];        arr[max1] = arr[max1] ^ arr[max2];    }    for (int i = low + 2; i < high; i++) {        if (arr[i] > arr[max2]) {            if (arr[max2 = i] > arr[max1]) {                arr[max1] = arr[max1] ^ arr[max2];                arr[max2] = arr[max1] ^ arr[max2];                arr[max1] = arr[max1] ^ arr[max2];            }        }    }    System.out.println(arr[max1] + "," + arr[max2]);}//数组中前2大元素private static void max2(int[] arr, int low, int high) {    int max1 = low,max2 = low;    for (int i = low + 1; i < high; i++) {        if (arr[max1] < arr[i]) {            max1 = i;        }    }    for (int i = low; i < max1; i++) {        if (arr[max2] < arr[i] ) {            max2 = i;        }    }    for (int i = max1 + 1; i < high; i++) {        if (arr[max2] < arr[i]) {            max2 = i;        }    }    System.out.println(arr[max1] + "," + arr[max2]);}// 数组求和线性递归private static int sum1(int[] a, int n) {    return n < 1 ? 0 : sum1(a, n - 1) + a[n - 1];}// 数组求和二分递归private static int sum2(int[] arr, int low, int high) {    if (low == high)        return arr[low];    int mid = (low + high) >> 1;    return sum2(arr, low, mid) + sum2(arr, mid + 1, high);}// 数组反转递归private static void reverse(int[] arr, int i, int j) {    if (i < j) {        arr[i] = arr[i] ^ arr[j];        arr[j] = arr[i] ^ arr[j];        arr[i] = arr[i] ^ arr[j];        reverse(arr, i + 1, j - 1);    }}

}

原创粉丝点击