索引映射

索引映射（Index mapping）也稱為直接定址（direct addressing）或平凡散列函數（trivial hash function）是计算机科学中對陣列的應用，利用陣列查表來找到主键所有全集分別對應的值。
此方式適用在主鍵全集不大的情形，因此可以針對每一個可能的主鍵分配記憶體。
其效能是源至在任何陣列中查表的时间复杂度都是常數。

適用的陣列
有許多實例中的資料有效值限制在小範圍內。此時適合使用平凡散列函數，以數值作為查表的鍵值，以下是一些例子：
 一年中的月份（1–12）
 一個月內的日（1–31）
 一星期的第幾天（1–7）
 人類年齡（0–130），用在人壽保險精算表，定期抵押貸款
 ASCII字元（0–127）

例子
利用平凡散列函數，非迭代式的查表法，可以完全消除條件判斷以及分支，減少程式中的。

避免分支
Roger Sayle提供一個程式，完全消除以下會有的多路分支：

inline bool HasOnly30Days(int m)
{
	switch (m) {
	case 4:  // April
	case 6:  // June
	case 9:  // September
	case 11: // November
		return true;
	default:
		return false;
	}
}

其作法是用以下的查表法：

inline bool HasOnly30Days(int m)
{
	static const bool T[] = { 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 };
	return T[m-1];
}

參考資料

Category:数组
Category:带有C代码示例的条目
Category:散列
Category:搜尋演算法