《算法导论(原书第2版)》读书笔记

《算法导论(原书第2版)》读书笔记

随手记下,很随性的,不成系列。自己上大学时稀里糊涂的混过来的,根本没有数学的基础,如:概率统计,排列组合,线性代数,离散数学。所以学得非常痛苦和吃力,感觉枯燥难学。但为了自己的编程开发的理想,坚持!

第1章 The Role of Algorithms in Computing

“lg n 表示 log2 n” 在这里本人有个疑问:lg n应该是表示log10 n才对吧

练习题1.2-2的图画:
 图示
在这,lg n 这个对数函数的底数按书上是为2。y轴表示有多少步。

第2章 Getting started

循环不变式(loop invariant)是由证明程序的算法是否正确而发展出来的。如果循环的初始化为真、循环下一次迭代的保持为真、循环结束为真,那么算法是正确的推理是成立的。

插入排序算法的C#语言实现:

int[] A = new int[] { 5, 2, 4, 6, 1, 3 };



for (int j = 1; j < A.Length; j++)

{

    int key = A[j];

    

    int i = j - 1;

    while (i >= 0 && A[i] > key)

    {

        A[i + 1] = A[i];

        i--;

    }

    A[i + 1] = key;

}

foreach (int k in A)

{

    Console.WriteLine(k.ToString());

}

JavaScript语言实现:

var arr = [5, 2, 4, 6, 1, 3];

for(j=1;j<arr.length;j++)

{

    key = arr[j];

    i = j - 1;

    while(i>0 && arr[i] > key)

    {

        arr[i+1] = arr[i];

        i=i-1;

    }

    arr[i+1] = key;

}

console.log(arr);

INSERTION-SORT(A)的第5行:times 的解释:∑上面是n下面是j=2右边是tj是表示t2+t3+…+tn-1+tn

你可能感兴趣的:(读书笔记)