Back to 课程

Computer-Science-A-level-Ocr

0% Complete
0/0 Steps
  1. 3-3-networks
    8 主题
  2. 3-2-databases
    7 主题
  3. 3-1-compression-encryption-and-hashing
    4 主题
  4. 2-5-object-oriented-languages
    7 主题
  5. 2-4-types-of-programming-language
    4 主题
  6. 2-3-software-development
    5 主题
  7. 2-2-applications-generation
    6 主题
  8. 2-1-systems-software
    8 主题
  9. 1-3-input-output-and-storage
    2 主题
  10. 1-2-types-of-processor
    3 主题
  11. 1-1-structure-and-function-of-the-processor
    1 主题
  12. structuring-your-responses
    3 主题
  13. the-exam-papers
    2 主题
  14. 8-2-algorithms-for-the-main-data-structures
    4 主题
  15. 8-1-algorithms
    10 主题
  16. 7-2-computational-methods
    11 主题
  17. 7-1-programming-techniques
    14 主题
  18. 6-5-thinking-concurrently
    2 主题
  19. 6-4-thinking-logically
    2 主题
  20. 6-3-thinking-procedurally
    3 主题
  21. 6-2-thinking-ahead
    1 主题
  22. 6-1-thinking-abstractly
    3 主题
  23. 5-2-moral-and-ethical-issues
    9 主题
  24. 5-1-computing-related-legislation
    4 主题
  25. 4-3-boolean-algebra
    5 主题
  26. 4-2-data-structures
    10 主题
  27. 4-1-data-types
    9 主题
  28. 3-4-web-technologies
    16 主题
课 Progress
0% Complete

Searching Algorithms

What is a searching algorithm?

  • A searching algorithm is a method to find a specific value or element within a data structure.

  • The two most common are:

    • Binary search

    • Linear search

  • The linear search is a standard algorithm used to find elements in an unordered list. The list is searched sequentially and systematically from the start to the end one element at a time, comparing each element to the value being searched for

    • If the value is found the algorithm outputs where it was found in the list

    • If the value is not found it outputs a message stating it is not in the list

  • An example of using a linear search would be looking for a specific student name in a list or searching for a supermarket item in a shopping list

figure-1--performing-the-linear-search-revision-notes-computer-science

Figure 1: Performing the Linear Search

  • To determine the algorithm’s execution time as measured by the number of instructions or steps carried out, Big-O notation must be used

  • The loop is executed n times, once for each item. There are two instructions within the loop, the if statement and an assignment, hence the Big-O for the loop is O(2n)

  • There are three initial statements which are O(1)

  • The overall Big-O notation is therefore 2n + 3, which when coefficients are factored out, becomes O(n) as linear time dominates constant time. The constant term and coefficients contribute significantly less as the input size n grows larger

  • It is important to remember here that O(n) is the worst case scenario. The best case scenario O(1) would find the item the first time, while the average case would be O(n/2) which when we remove coefficients still becomes O(n)

  • Linear search has a space complexity of O(1) because it does not require any additional memory that grows with the size of the input

  • It only uses a constant amount of extra space, such as a loop counter or a variable to store the target value

  • Given the following list [5, 4, 7, 1, 3, 8, 9, 2], a trace table for the linear search is shown below

Trace Table of the Linear Search

item

index

i

list[i]

found

8

-1

0

5

False

 

 

1

4

 

 

 

2

5

 

 

 

3

1

 

 

 

4

3

 

8

5

5

8

True

Pseudocode

function linearSearch(list, item) index = -1 i = 0 found = False while i < len(list) and found = False if list[i] = item then index = i found = True endif i = i + 1 endwhile return index
endfunction
  • In the above algorithm, a list of n ordered items is passed to the function and three variables are initialised

  • index = -1 is a default value to indicate “not found”, i = 0 is a counter to ensure the loop starts at the beginning of the list and found = False sets a flag to track when/if the value you are searching for is found

  • The loop continues as long as the counter hasn’t reached the end of the list and if list[i] = item the current index is stored as the location of the item

  • The flag found is set to True to signal the search can be stopped

  • i = i + 1 increments the counter to move to the next element in the list if the value is not found

  • After the loop completes the function returns the final value of index

Python

def linear_search(list, item):
index = -1
for i in range(len(list)):
if list[i] == item:
index = i
break # Stop the loop once the item is found
return index

Java

public class LinearSearch {
public static int linearSearch(int[] list, int item) {
int index = -1;
for (int i = 0; i < list.length; i++) {
if (list[i] == item) {
index = i;
break; // Stop the loop once the item is found
}
}
return index;
}

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注