## Linear search not continuing to end of array

The program is meant to show the position (using counter) of all numbers which are 71. It only finds the first one before stopping.

numbers = [23,76,45,71,98,23,65,37,93,71,37,21] search_value = 71 counter = 0 found = False while found == False and not counter == len(numbers): if numbers[counter] == search_value: found = True else: counter = counter + 1 if found == True: print("Found at position ",counter) else: print("No match found")

Version of python is 3.7.0

The reason for this is that your `while`

loop only runs while `found = False`

.

If I understand your question correctly you want to find each index (`counter`

) for each occurrence of `search_value`

.

To achieve this you could use a `for`

loop to iterate over the list. So the resulting code would be:

numbers = [23,76,45,71,98,23,65,37,93,71,37,21] search_value = 71 found = False for counter in range(len(numbers)): if numbers[counter] == search_value: found = True print("Found at position ",counter) if not found: print("No match found")

You could also alter the code above if you don't want a separate message for each time the value got found.

That could look like this:

numbers = [23,76,45,71,98,23,65,37,93,71,37,21] search_value = 71 found_indexes = [] for counter in range(len(numbers)): if numbers[counter] == search_value: found_indexes.append(counter) if len(found_indexes) == 0: print("No match found") else: print("Found at positions: ", found_indexes)

**Linear Search Explained,** The code for a linear search function in JavaScript is shown below. If the item is not present in the array, the function will return null. if array[counter] == target return counter else counter += 1 end end return nil end If it doesn't match, the code will continue to move on to the next element in the array by C Program Linear Search in Array: Input N numbers in array and an item to search. C Program will show you the location of searched item if present.

Your program stops after finding the first occurrence of 71 because at that point the value of `found`

will change to `True`

which will in turn cause one side of the `and`

operator to be `False`

(`found == False`

) hence the whole condition will be `False`

because 'and' operators requires both sides to be `True`

for it to evaluate to `True`

.

You can accomplish what you want to do by:

numbers = [23,76,45,71,98,23,65,37,93,71,37,21] search_value = 71 counter = 0 found = False while counter < len(numbers): #if counter is equal to/more than the length we'll be outside the list range if numbers[counter] == search_value: print("Found at position ",counter) found = True counter += 1 #Same as counter = counter + 1 else: counter += 1 if not found: #Same as asking whether found is False print("No match found")

**Linear Search,** Linear Search. Problem: Given an array arr[] of n elements, write a function to search a given element x (result == -1)? cout<< "Element is not present in array". Remarks. The _lsearch function performs a linear search for the value key in an array of number elements, each of width bytes. Unlike bsearch, _lsearch does not require the array to be sorted. If key is not found, _lsearch adds it to the end of the array and increments number. The compare argument is a pointer to

Got it working using this thanks all for responses

numbers = [23,76,45,71,98,23,65,37,93,71,37,21] search_value = 71 found = False while found == False: for counter in range(0,len(numbers)): if numbers[counter] == search_value: print("Found at position ",counter + 1) found = True found = False

**Linear search,** In computer science, a linear search or sequential search is a method for finding an element The search will reach the sentinel if the target is not contained within the list. search (for instance binary search), in practice even on medium-sized arrays (around 100 items or less) it might be infeasible to use anything else. This C program is well written for finding an element using Linear Search. We have Taken array of values. You can see ready to execute Program with output.

**Implementing binary search of an array (article),** There are no such numbers! At this point, we can conclude that the target number, 10, is not in the primes array, and the binarySearch function would Linear search is mostly used to search an unordered list of elements (array in which data elements are not sorted). For example, if an array A[10] is declared and initialized as, int A[10] = {10, 8, 2, 7, 3, 4, 9, 1, 6, 5}; Val = 7 then Pos = 3. Linear Search Algorithm

**Simple Program Design, A Step-by-Step Approach,** An array can be searched using either a linear search or a binary search. Continue the search until either you find the element being looked for or you Print 'value not found', input_value ENDIF END A binary search of an array When the Linear Search. Linear search, also called as sequential search, is a very simple method used for searching an array for a particular value. It works by comparing the value to be searched with every element of the array one by one in a sequence until a match is found. Linear search is mostly used to search an unordered list of elements (array in which data elements are not sorted). For example, if an array A[10] is declared and initialized as, int A[10] = {10, 8, 2, 7, 3, 4, 9, 1, 6, 5}; Val

**Excel HSC Softw Design&Devel + Cards SG,** Figure 4.4 shows an algorithm to perform a linear search of an array of 100 was not found ENDIF END MAINPROGRAM Figure 4.4 Algorithm for a linear search The process is continued until either the value is found or there are no more Linear search is the basic search algorithm used in data structures. If is also called as sequential search. Linear search is used to find a particular element in an array.