前導
循序搜尋法(Sequential Search)是一種最簡單的搜尋演算法,適用於線性結構。 它的基本概念是 逐一檢查每個元素,直到找到目標值或遍歷完整個結構。
演算法步驟
- 從第一個元素開始,檢查是否等於目標值。
- 若相等,則返回該元素的索引位置。
- 若不相等,則繼續檢查下一個元素。
- 若遍歷完整個結構後仍未找到,則返回 -1(表示找不到)。
時間複雜度
- 最壞情況 (Worst-case): O(n)(當目標值在最後一個或不存在時)
- 平均情況 (Average-case): O(n)
- 最佳情況 (Best-case): O(1)(當目標值位於第一個位置時)
程式碼
#include <stdio.h>
int sequentialSearch(int arr[], int size, int target) {
for (int i = 0; i < size; i++) {
if (arr[i] == target) {
return i; // 返回索引位置
}
}
return -1; // 找不到
}
int main() {
int arr[] = {10, 25, 47, 32, 5, 60};
int size = sizeof(arr) / sizeof(arr[0]);
int target = 32;
int result = sequentialSearch(arr, size, target);
if (result != -1) {
printf("找到 %d,索引位置為 %d\n", target, result);
} else {
printf("未找到 %d\n", target);
}
return 0;
}