Search
Created|Updated
|Post Views:
顺序查找
暴力遍历
顺序表
通过数组下标递增来扫描每一个元素
链表
通过next指针来扫描整个链表
二分查找(折半查找)(Binary Search)
流程图
代码实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #define ElemType int
int Binary_Search(ElemType e, ElemType* arr, int n) { int low = 0, high = n - 1, mid; while (low <= high) { mid = (low + high) / 2; if (arr[mid] == e) { return mid; } else if (e < arr[mid]) { high = mid - 1; } else { low = mid + 1; } } }
int main() { int arr[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i = Binary_Search(7, arr, 10); printf("%d\n", i); }
|
哈希查找(散列查找)(hash)
通过hash函数对要查找的内容进行转化成hash表的下标,然后,直接访问hash表,得到要找的内容or指针。
查找的时间复杂度为O(1)。

冲突