顺序表的顺序查找:
// 从顺序表中从前往后查找数据,找到返回下标,找不到返回-1 int order_search(int* arr,size_t len,int key) { for(int i=0; i<len; i++) { if(key == arr[i]) return i; } return -1; }
链表的顺序查找:
ListNode* order_search(ListNode* head,int key) { for(ListNode* n=head; NULL!=n; n=n->next) { if(n->data == key) return n; } return NULL; }
顺序查找的优点:
-
对待查找的数据没有有序性的要求,无论是否有序都可以顺序查找
-
对待查找的数据的存储方式也没有要求,无论是顺序表还是链表都可以顺序查找
顺序查找的缺点:
-
相比于其他查找算法速度要慢,最优时间复杂度 O(1) 最差O(N) 平均O(N)