今天聊一下基础知识 | 每日一练(179)

基础知识练习

士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ——菜根谭

读者:什么是散列法?

小林:散列法是把字符串映射到整数的处理, 通常是到一个相对小的范围。一个 “散列函数” 映射一个字符串 (或其它的数据结构) 到一个有界的数字 (散列存贮桶),这个数字可以更容易的用于数组的索引或者进行反复的比较。明显的, 一个从潜在的有很多组的字符串到小范围整数的映射不是唯一的。任何使用散列的算法都要处理 “冲突” 的可能。有许多散列函数和相关的算法被开发了出来; 一个全面的说明已经超出了本文的范围。

读者:由一个日期, 怎样知道是星期几?

小林:可以用 mktime() 或 localtime()

也可以参考这个样例代码:

int dayofweek(int y, int m, int d) /* 0 = Sunday */

{

static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};

y -= m < 3;

return (y + y/4 – y/100 + y/400 + t[m-1] + d) % 7;

}

正文完