插入查找 插入查找的特点是根据给定值的大小和待查找区间关键字的分布来确定继续查找的范围。显然这种查找方法适合于关键字均匀分布的表,在这种情况下,对表长较大的顺序表,其平均性能要比折半查找好。 代码示例 /// <summary> /// 插入查找 /// </summary> /// <param name="cArr">递增的有序数组</param> /// <param name="c">查询的元素</param> /// <returns>返回元素在数组中索引。如果数组中无此元素则返回-1</returns> int Search3(char[] cArr, char c) { int start = 0; int end = cArr.Length - 1; int i = 0; while (start <= end) { if (c < cArr[start] || c > cArr[end]) { return -1; } i = (int)(((double)c - cArr[start]) / (cArr[end] - cArr[start]) * (end - start) + 0.5); if (c == cArr[i]) { return i; } else { if (c > cArr[i]) { start = i + 1; } else { end = i - 1; } } } return -1; }