记录

正在加载古诗词……

再回顾冒泡排序

讨论一下可以优化的情况  2019年9月10日

冒泡排序优化

对数据进行排序是很常见的操作,而排序算法中,冒泡排序是最简单、最经典的一种。然而冒泡排序非常慢,基本上不会在实际应用中使用它。冒泡排序作为算法入门是一个很不错的例子,下面介绍朴素的冒泡排序算法及其改进版本。

朴素的冒泡排序

冒泡排序就是对未排序的数据,一开始比较两个相邻的数的大小,如果第一个元素大于第二个元素则交换这两个元素的位置,使得较大的沉入底部,而较小的浮上来。这就是冒泡,轻的小的往上走,重的大的往下。要对一组数据进行排序,就要全部元素进行比较一遍,需要交换的则进行交换操作。这样假设一组数据有N个元素,那么从头到尾对元素两两比较一遍需要N-1次操作,所以…… 额,好像有个西格玛记法,求和,推导出时间复杂度的。

阅读更多📰

Java是值传递

搞清楚Java是值传递还是引用传递  2019年9月5日

Java是值传递

在一本Java面试参考书里面看到一个题目,有如下代码:

public class Test {

    private void change(String str, char[] ch) {
        str = "test ok";
        ch[0] = 'g';
    }
    public static void main(String[] args) {
        String str = new String("good");
        char[] ch = {'a', 'b', 'c'};
        Test ex = new Test();
        ex.change(str, ch);
        System.out.print(str + " and ");
        System.out.print(ch);
    }
}

问上面程序运行的结果是()
A. good and abc
B. good and gbc
C. test ok and abc
D. test ok and gbc

阅读更多📰

编译器构造—编译

第一章  2019年7月10日

编译

编译器

compiler

编译器就是将用高级语言编写的源程序编译成为对应的低级语言(例如机器语言)的程序。

编程语言

编程语言由三方面定义:

1.标记(token)或词位。例如关键字if,操作符+,常量如4'c',还有标识符。

2.语法描述和语言结构。例如类、方法、语句和表达式等。

3.语义描述。描述各种语言结构的意义。

阅读更多📰

不同领域的对数记法差异

Log notation in various contexts  2019年6月26日

The notation $x = \ln y$ is a shorthand for the natural logarithm to the base $e$: $x = \log_{e} y$ . This notation is used throughout mathematics, science, and engineering.

The shorthand notation $x = \log y$ is sometimes used when the base $b$ remains fixed and is understood from the context. The “understood” base, however, can vary from place to place:

  • $x = \log y$ often means $x = \ln y$ in mathematics texts.

  • $x = \log y$ often means $x = \lg y$ in science and engineering texts.

  • $x = \log y$ often means $x = \log_{2} y$ in computer science texts.

Be careful when reading or using $x = \log y$ .

阅读更多📰

普林斯顿微积分读本

微积分救生圈  2019年6月21日

最后这些日子,尽量全身心投入学习The Calculus Lifesaver

讲解详细的书适合我

​ 《普林斯顿微积分读本》是能看的进去的微积分书籍,不知道中文版是否也是这样的情况。这种讲人话的书,读起来不觉乏味。

阅读更多📰