迭代和递归基本思想
来源:互联网 发布: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); }}
}
阅读全文
0 0
- 迭代和递归基本思想
- 7、递归思想和迭代思想(递推思想)
- java算法的基本思想之迭代,递归,动态规划
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 递归和迭代
- 一年
- 《化学教学论》总结
- linux 用户和用户组
- 迭代器、增强for、泛型
- 正则表达式
- 迭代和递归基本思想
- 【HDU
- Spark内存管理模型
- ubuntu16.04通过odbc(用的C++)访问另一台centos上的达梦数据库
- 【架构性能分析(2)】Tomcat 配置优化
- 【译】你可以用GitHub做的12件 Cool 事情
- 看过的闲书
- 搜索学习入门--Lucene初体验(Lucene索引的增删改查)
- Oracle之表/视图名称大小写问题-yellowcong