Jump to topic 1.1 Introduction to Algorithms, Programming, and Compilers 1.2 Variables and Data Types 1.3 Expressions and Output 1.4 Assignment Statements and Input 1.5 Casting and Range of Variables 1.6 Compound Assignment Operators 1.7 Application Program Interface (API) and Libraries 1.8 Documentation with Comments 1.9 Method Signatures 1.10 Calling Class Methods 1.11 Math Class 1.12 Objects: Instances of Classes 1.13 Object Creation and Storage (Instantiation) 1.14 Calling Instance Methods 1.15 String Manipulation 2.1 Algorithms with Selection and Repetition 2.2 Boolean Expressions 2.3 if Statements 2.4 Nested if Statements 2.5 Compound Boolean Expressions 2.6 Comparing Boolean Expressions 2.7 while Loops 2.8 for Loops 2.9 Implementing Selection and Iteration Algorithms 2.10 Implementing String Algorithms 2.11 Nested Iteration 2.12 Informal Run-Time Analysis 3.1 Abstraction and Program Design 3.2 Impact of Program Design 3.3 Anatomy of a Class 3.4 Constructors 3.5 Methods: How to Write Them 3.6 Methods: Passing and Returning References of an Object 3.7 Class Variables and Methods 3.8 Scope and Access 3.9 this Keyword 4.1 Ethical and Social Issues Around Data Collection 4.2 Introduction to Using Data Sets 4.3 Array Creation and Access 4.4 Array Traversals 4.5 Implementing Array Algorithms 4.6 Using Text Files 4.7 Wrapper Classes 4.8 ArrayList Methods 4.9 ArrayList Traversals 4.10 Implementing ArrayList Algorithms 4.11 2D Array Creation and Access 4.12 2D Array Traversals 4.13 Implementing 2D Array Algorithms 4.14 Searching Algorithms 4.15 Sorting Algorithms 4.16 Recursion 4.17 Recursive Searching and Sorting Big idea: Linear search checks elements one at a time until it finds the target or runs out. It works on any data, sorted or not.
Learning objectives Develop code used for linear search algorithms to search for specific information in a collection and determine the results of executing a search. Linear search returning an index Methods static int indexOf(int [] arr, int target) {
for (int i = 0 ; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1 ; // only after checking every element
}Using them System .out.println(indexOf(new int [] {4 , 7 , 1 , 7 }, 7 ));
System .out.println(indexOf(new int [] {4 , 7 , 1 , 7 }, 9 ));Output 1
-1 Searching objects and 2D arrays Use equals for objects. For a 2D array, search row by row.
Code String [][] grid = { {"ox" , "cat" }, {"dog" , "eel" } };
String target = "dog" ;
int foundR = -1 , foundC = -1 ;
for (int r = 0 ; r < grid.length; r++) {
for (int c = 0 ; c < grid[r].length; c++) {
if (grid[r][c].equals(target)) {
foundR = r;
foundC = c;
}
}
}
System .out.println(foundR + "," + foundC);Output 1,0 Key points Linear search checks each element in order until it finds the target or reaches the end. It can start at either end.In the worst case it looks at every element. For 2D arrays, linearly search each row. Watch out Return -1 after the loop, not in an else inside it. Quick check Searching {5, 3, 8} for 8 from the front, how many elements are checked? Show answer 3.