1)二维数组的静态初始化:

               int[][] arr = new int[][] { {1,2,3}, {4,5}, {6,7}}

2)杨辉三角:

/**
*    需求:计算并模拟杨辉三角
*    如:
*        1
*       1 1
*      1 2 1
*     1 3 3 1
*/
public class PascalTriangle {

    // 打算模拟的行数
    public static int row = 10;

    public static void main(String[] args) {

        int[][] arr = new int[row][];
        for(int i = 0; i < arr.length; i++) {
            int len = i + 1;
            arr[i] = new int[len];
            for(int j = 0; j < len; j++) {
                if(j == 0 || j == i) {
                    arr[i][j] = 1;            // head and tail number
                } else {                       
                    arr[i][j] = arr[i-1][j] //    middle number
                        + arr[i-1][j-1];   
                }
            }
        }

//        验证数值模拟的正确性
//        for(int[] ele : arr) {
//            System.out.println(java.util.Arrays.toString(ele));
//        }
       
        // 打印杨辉三角
        printPascalTriangle(arr);

    }

    /**
     *    需求:按照原始形式打印杨辉三角
     *    如:            1
     *                1        1
     *            1        2        1
     *        1        3        3        1
     *    1        4        6        4        1
     */
    public static void printPascalTriangle(int[][] arr) {
        if(arr == null || arr.length == 0) return;
       
        int rows = arr.length;
       
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] == null || arr[i].length == 0) return;
           
            int left = row -  i;
           
            while(true) {
                if(left-- == 0) break;
                System.out.print("\t");
            }
           
            for(int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]);
                System.out.print("\t\t");
            }
           
            System.out.println("\n");
        }
    }
}

3)汉诺塔:

private void hannuo(int n, char from,
          char to, char depend) {
      if(n==1) {
          move(n, from, to);
      } else {
          hannuo(n-1, from, depend, to);
          move(n, from, to);
          hannuo(n-1, depend, to, from);
      }
  }
 
  private void move(int n, char from, char to) {
        System.out.println(……);
  }
4) for each循环的陷阱:对于基本类型的数组,在循环内部无法改变数组内容,但是对于引用(对象)数组或多维数组,循环内部是可以修改原始内容的。

5)排序算法:

              1.选择排序:直接选择与堆排序

             2.交换排序:冒泡排序、快速排序

             3.插入排序:直接插入、二分法排序、Shell排序

             4.归并排序

6)冒泡排序的思考模型(Bubble Sort):

           这是最简单的排序法,基本思路:

           对未排序的各元素从头到尾依次比较相邻的两个元素大小关系,若大于则交换位置,经过第一轮比较排序后可得出最大值,然后使用同样的方法把剩下的元素逐个比较即可。

           可以看出若有N个元素,那么一共要进行N-1轮比较,第M轮要进行N-M次比较。(若6个元素,要进行6-1轮比较,第一轮比较6-1次,第三轮比较6-3次)。

7)选择排序(Selection Sort):

           基本思路:选择某个索引位置的元素,然后和后面元素依次比较,若大于则交换位置,经过第一轮比较排序后可得出最小值,然后使用同样的方法把剩下的元素逐个比较即可。

           可以看出选择排序,第一轮会选出最小值,第二轮会选出第二小的值,直到最后。

           第一轮从arr[0]和后面元素相比较,第二轮从arr[1]和后面的元素相比较,依次类推。N个数要进行N-1轮。选择排序每一轮只进行一次交换,相对于冒泡排序效率高一些。

8)搜索方法:

        1)顺序搜素:效率低

         2)二分法搜索:效率高,但只能在有序序列中进行搜索

 

Java日志——2016.6.3的更多相关文章

  1. Java日志——2016年5月31日

    1. 三元运算符(A?B:C)属于运算符,表达式必须具有返回值,则A必须是boolean类型值,B和C必须是一个具有返回值的表达式. 2. switch...case本质上只支持int类型的选择判断, ...

  2. Java日志——2016年5月30日

    1. 局部变量必须初始化,可以定义的同时初始化,也可以定义完成之后进行初始化. 2. Java7新特性:数字之间可以使用"_"连接,eg:23_44_5 = 23445,0B110 ...

  3. Java日志框架那些事儿

    文章首发于[博客园-陈树义],点击跳转到原文Java日志框架那些事儿. 在项目开发过程中,我们可以通过 debug 查找问题.而在线上环境我们查找问题只能通过打印日志的方式查找问题.因此对于一个项目而 ...

  4. 混乱的 Java 日志体系

    混乱的 Java 日志体系 2016/09/10 | 分类: 基础技术 | 0 条评论 | 标签: LOG 分享到: 原文出处: xirong 一.困扰的疑惑 目前的日志框架有 jdk 自带的 log ...

  5. Java日志体系(四)slf4j

    1.1 简介 与commons-logging相同,slf4j也是一个通用的日志接口,在程序中与其他日志框架结合使用,并对外提供服务. Simple Logging Facade for Java简称 ...

  6. [翻译]Java日志终极指南

    本文由 ImportNew - Wing 翻译自 loggly.欢迎加入翻译小组.转载请见文末要求. Java日志基础 Java使用了一种自定义的.可扩展的方法来输出日志.虽然Java通过java.u ...

  7. Java日志框架:SLF4J,Common-Logging,Log4J,Logback说明

    Log4j  Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守护进程等 ...

  8. Java日志规范

    前言 一个在生产环境里运行的程序如果没有日志是很让维护者提心吊胆的,有太多杂乱又无意义的日志也是令人伤神.程序出现问题时候,从日志里如果发现不了问题可能的原因是很令人受挫的.本文想讨论的是如何在Jav ...

  9. Java日志系统及框架分析

    最近在考虑将容器(Tomcat)内的应用日志统一成slf4j + logback,主要目的有: 快速定位应用日志输出路径,方便日志的采集: 能动态调整日志的级别,方便线上问题定位: 方便在容器层面做扩 ...

随机推荐

  1. jquery循环操作

    each遍历 用法一. <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  2. Microsoft Win32 to Microsoft .NET Framework API Map

    Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles   ...

  3. Python error: Unable to find vcvarsall.bat

    在安装一些Python模块时,大部分是cpython写的模块时会发生如下错误 error: Unable to find vcvarsall.bat.先前的一篇文章:在Windows上安装Scrapy ...

  4. angular2开发01

    // */ // ]]> angular2开发01 1. angular2 开发准备 1.1. 安装node 1.2. 安装npm 1.3. 运行qickStart 1 angular2 开发准 ...

  5. ruby 中%Q %q %W %w %x %r %s的用法

    %Q 用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\") >> %Q(Joe said: "Fr ...

  6. 微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送功能

    在做一个微信的微网站中的一个便民服务电话功能的应用,用到移动web页面中列出的电话号码,点击需要实现调用通讯录,网页一键拨号的拨打电话功能. 如果需要在移动浏览器中实现拨打电话,发送email,美国服 ...

  7. PHPCMS v9 超级安全防范教程!

    一.目录权限设置很重要:可以有效防范黑客上传木马文件.如果通过 chmod 644 * -R 的话,php文件就没有权限访问了.如果通过chmod 755 * -R 的话,php文件的权限就高了. 所 ...

  8. OAF_开发系列13_实现OAF通过Vector动态查询设置(案例)

    20150715 Created By BaoXinjian

  9. vrrp

    https://zhidao.baidu.com/question/1498182981731748379.html

  10. 微信小程序上传文件

    wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourc ...