Algorithms_in_C 1.0.0
Set of algorithms implemented in C.
|
Linear Search with Sentinel algorithm implementation More...
#include <stdio.h>
#include <assert.h>
Functions | |
int | sentinel_linear_search (int arr[], int len, int key) |
for IO operations | |
static void | test () |
Self-test implementations. | |
int | main () |
Main function. | |
Linear Search with Sentinel algorithm implementation
This algorithm saves the last element of the array, then replaces it with the value to be found and sets it as the sentinel. When searching, compares each element with the sentinel. If the same, returns the index. If the index is the index of the sentinel, it means it was not found. Of course, if the value to be found is the last element, we return the index of the last element.
int main | ( | void | ) |
int sentinel_linear_search | ( | int | arr[], |
int | len, | ||
int | key | ||
) |
for IO operations
for assert
Utility function to search for an element in the array and return the index of the element
The so-called "sentinel" is to use a special value as the boundary key of the array. One less judgment statement can be used. The purpose is to avoid checking whether the entire array is searched at each step in the search process, so as to improve the efficiency of the program. We can use the last value of the array as the "sentinel", the data storage index i starts from 0 and ends at len-1, then the position where the index of arr is n-1 indicates that there is no data temporarily, which is the "sentinel" key. If the last element of the array is equal to the key, directly return the index of the last element. Before setting the last element of the array as the key, we hand over the last element of the array to temp for temporary storage. Then go to the array to find the key. If the key is found, stop the search, and then compare the found element index with len-1. If it is equal, it means it was not found. If it is not equal, it is found.
arr | this is an array containing elements |
len | this is the number of elements in the array |
key | the value we want to search |
|
static |
Self-test implementations.