sorting and searching. searching problem definition: given a value x, return the index of x in the...
DESCRIPTION
Search Example: Number X= Return: 3TRANSCRIPT
![Page 1: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/1.jpg)
Sorting and Searching
![Page 2: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/2.jpg)
Searching
Problem definition:Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1).
(Assumptions: no duplicate entries in the array)
![Page 3: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/3.jpg)
Search
Example:
Number402018 17 22 27 30
X= 40
0 1 2 3 4 5 6
Return: 3
![Page 4: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/4.jpg)
Search
Example:
Number402018 17 22 27 30
X= 32
0 1 2 3 4 5 6
Return: NOT_FOUND (-1)
![Page 5: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/5.jpg)
Searching
We will count the number of comparisons the algorithms make to analyze their performance. The ideal searching algorithm will
make the least possible number of comparisons to locate the desired data.
Two separate performance analyses are normally done:
one for successful search and another for unsuccessful search.
![Page 6: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/6.jpg)
Searching
We will count the number of comparisons the algorithms make to analyze their performance. The ideal searching algorithm will make the least
possible number of comparisons to locate the desired data.
Two separate performance analyses are normally done:
one for successful search (x is found) and another for unsuccessful search (x is not found)
![Page 7: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/7.jpg)
Linear Search Search the array from the first to the last position in linear
progression. public int linearSearch ( int[] number, int searchValue ) {
}
int pos = 0;while (pos < number.length && number[pos] != searchValue) {
pos++;}
if (pos == number.length) { //Not foundreturn NOT_FOUND;
} else { return pos; //Found, return the position}
![Page 8: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/8.jpg)
Linear Search Performance
We analyze the successful and unsuccessful searches separately.
Successful Search Best Case: 1 comparison Worst Case: N comparisons (N – array
size) Unsuccessful Search
Best Case = Worst Case: N comparisons
![Page 9: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/9.jpg)
Lab
1. Download the partially implemented Search.java class from the class web site
2. Find the comment “// Please insert the code to ask a user to type in the size of the array” and insert the code as required accordingly there.
3. Find the comment “// Please allocate the memory for the array number here” and insert the code as required there.
4. Find the comment “// Please insert the code to ask a user to type in the actual value for each element in the array” and insert the code as required there
![Page 10: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/10.jpg)
Lab
5. Find the comment ”// Please insert the code to ask the user to type in the number being searched” and insert the code required there
6. Find the comment “Please insert the code is to call linearSearch method using searchObj object” and insert the code there
7. Compile and run your program
![Page 11: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/11.jpg)
int size;int[] number;String inputStr;
// Please insert the code to ask a user to type in the size of the arrayinputStr = JOptionPane.showInputDialog(null,"Please enter the size of
array: ");size = Integer.parseInt (inputStr);
// Please allocate the memory for the array number herenumber = new int[size];
// Please insert the code to ask a user to type in the actual // value for each element in the arrayfor (int i=0; i< size; i++) {
inputStr = JOptionPane.showInputDialog(null,"Please enter the number["+i+"]");number[i] = Integer.parseInt (inputStr);
}
![Page 12: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/12.jpg)
int searchNumber;int index = -1;// Please insert the code to ask the user to type in// the number being searched
inputStr = JOptionPane.showInputDialog(null,"Please enter the number being searched: ");searchNumber = Integer.parseInt (inputStr);
Search searchObj = new Search();// Please insert the code is to call linearSearch// method using searchObj object
index = searchObj.linearSearch(number,searchNumber);
System.out.println(" Index of the number being searched is "+ index);System.exit(0);
![Page 13: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/13.jpg)
Second midterm exam
Date: Monday, 04/17/2006Format:
Multiple choicesMatchingIdentify syntactic errorsIdentify results of code
Content: refer to guidelines
![Page 14: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/14.jpg)
Binary Search
If the array is sorted, then we can apply the binary search technique.
Sorted array: all the values in the array are arranged in ascending or descending ordera[i] >= a[j] (i>= j)
ORa[i] <= a[j] (i>= j)
![Page 15: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/15.jpg)
Example
Unsorted array
Sorted array
Number402018 17 22 27 30
0 1 2 3 4 5 6
Number221817 20 27 30 40
0 1 2 3 4 5 6
![Page 16: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/16.jpg)
Binary Search
The basic idea is straightforward: First search the value in the middle position. If X is less than this value, then search the middle of the left half next. If X is greater than this value, then search the middle of the right half next. Continue in this manner.
![Page 17: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/17.jpg)
Sequence of Successful Search - 1
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 44 )low high mid0 8#1
highlow
2
highlowmid
38 < 44 low = mid+1 = 5
mid
4
![Page 18: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/18.jpg)
Sequence of Successful Search - 2
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 44 )low high mid0 8#1
2
highlowmid
44 < 77high = mid-1=5
4
mid
6
highlow
5 8#2
![Page 19: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/19.jpg)
Sequence of Successful Search - 3
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 44 )low high mid0 8#1
2
highlowmid
44 == 44
45 8#2 6
highlow
5 5#3
mid
5
Successful Search!!
![Page 20: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/20.jpg)
Sequence of Unsuccessful Search - 1
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 45 )low high mid0 8#1
highlow
2
highlowmid
38 < 45 low = mid+1 = 5
mid
4
![Page 21: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/21.jpg)
Sequence of Unsuccessful Search - 2
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 45 )low high mid0 8#1
2
highlowmid
45 < 77high = mid-1=5
4
mid
6
highlow
5 8#2
![Page 22: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/22.jpg)
Sequence of Unsuccessful Search - 3
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 45 )low high mid0 8#1
2
highlowmid
44 < 45
45 8#2 6
highlow
5 5#3
mid
5
low = mid+1 = 6
![Page 23: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/23.jpg)
Sequence of Unsuccessful Search - 4
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 45 )low high mid0 8#1
2
highlowmid
45 8#2 65 5#3 5
high low
6 5#4
Unsuccessful Searchlow > highno more elements to search
![Page 24: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/24.jpg)
Binary Search Routinepublic int binarySearch (int[] number, int searchValue) {
int low = 0;int high = number.length – 1; int mid = (low + high) / 2;
while (low <= high && number[mid] != searchValue) {if (number[mid] < searchValue) {
low = mid + 1;} else {
high = mid - 1;}mid = (low + high) / 2;
}
if (low > high) {mid = NOT_FOUND;
}return mid;
}
![Page 25: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/25.jpg)
Binary Search Performance
Successful Search Best Case: 1 comparison Worst Case: log2N comparisons
Unsuccessful Search Best Case =
Worst Case: log2N comparisons
![Page 26: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/26.jpg)
Binary Search Performance
Since the portion of an array to search is cut into half after every comparison, we compute how many times the array can be divided into halves.
After K comparisons, there will be N/2K elements in the list. We solve for K when N/2K = 1, deriving K = log2N.
![Page 27: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/27.jpg)
Comparing N and log2N Performance
Array Size Linear – N Binary – log2N10 10 4
50 50 6100 100 7500 500 9
1000 1000 102000 2000 113000 3000 124000 4000 125000 5000 136000 6000 137000 7000 138000 8000 139000 9000 14
10000 10000 14
![Page 28: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/28.jpg)
“Just in time” review
1. Suppose an array (SORTED) contains 1024 elements. What are the least and the greatest number of comparisons for a successful search using binary search?
1 and 10 1 and 9 1 and 8 1 and 1024
![Page 29: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/29.jpg)
“Just in time review”
2. How many comparisons do we need to find x=6 using linear search on the following sorted array A (10 elements): -8 -6 -4 -2 0 2 4 6 8 10a. 6b. 7c. 8d. 9
![Page 30: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/30.jpg)
“Just in time review”
3. How many comparisons do we need to find x=6 using binary search on the following sorted array A (10 elements): -8 -6 -4 -2 0 2 4 6 8 10a. 1b. 2c. 3d. 4
![Page 31: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/31.jpg)
“Just in time review”
4. Which of the following is NOT true?a. Linear search requires no special
constraint on the arrayb. Binary search requires the array to be
sortedc. Binary search and linear search have the
same best case performance (successful search)
d. Binary search and linear search have the same worst case performance (successful search)
![Page 32: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/32.jpg)
Example
X = 40?
Number221817 20 27 30 40
0 1 2 3 4 5 6
Middle position = (6+0)/2 = 3Comparing: 40 and number[3](22) => Not match
=?
![Page 33: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/33.jpg)
Example
X = 40?
Number221817 20 27 30 40
0 1 2 3 4 5 6
Middle position = (6+4)/2 = 5Comparing: 40 and number[5](30) => Not match
=?
![Page 34: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/34.jpg)
Example
X = 40?
Number221817 20 27 30 40
0 1 2 3 4 5 6
Middle position = (6+6)/2 = 6Comparing: 40 and number[6](40) => matchReturn 6
![Page 35: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/35.jpg)
Lab 6
Math.random method: Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
![Page 36: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/36.jpg)
Lab 6
Array 1 Array 2 Search Key Found/Not
Found? Numbers of Comparisons made?
Search Key Found/Not Found
Numbers of Comparisons made?
66 Found 8 66 Found 6 59 Found 17 59 Found 4 56 FOUND 82 56 FOUND 6 19 FOUND 100 19 FOUND 6 212 FOUND 133 212 FOUND 5 5 NOT
FOUND 148 5 NOT
FOUND 7
17 FOUND 75 17 FOUND 7 36 FOUND 34 36 FOUND 6 89 NOT
FOUND 148 89 NOT
FOUND 8
184 FOUND 14 184 FOUND 6
![Page 37: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/37.jpg)
Lab 6
0
20
40
60
80
100
120
140
160
0 5 10 15
Array 1
Array 2
![Page 38: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/38.jpg)
Lab 6
Array 1: we did not sort it and we use linear search
Array 2: sort it and use binary search
![Page 39: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/39.jpg)
Sorting
![Page 40: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/40.jpg)
Sorting
The problem statement:Given an array of N integer values, arrange the values into ascending order.
We will count the number of comparisons the
algorithms make to analyze their performance. The ideal sorting algorithm will make the least possible
number of comparisons to arrange data in a designated order.
We will compare different sorting algorithms by analyzing their worst-case performance.
![Page 41: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/41.jpg)
Example
Input:
Output
Number402018 17 22 27 30
0 1 2 3 4 5 6
Number221817 20 27 30 40
0 1 2 3 4 5 6
![Page 42: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/42.jpg)
Selection Sort
Step1 : Find the smallest integer in the array
Step 2: Exchange the element in the first position and the smallest element. Now the smallest element is in the first position. Cross out the number found in step 1 from consideration.
Step 3: Repeat steps 1 and 2 until all numbers in the array are sorted
![Page 43: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/43.jpg)
Example
Input (unsorted):
Input
number402018 17 22 27 30
0 1 2 3 4 5 6
Number
0 1 2 3 4 5 6
![Page 44: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/44.jpg)
Example
First passNumber
402018 17 22 27 30
0 1 2 3 4 5 6
Number17
0 1 2 3 4 5 6
1820 40 22 27 30
![Page 45: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/45.jpg)
Example
Second passNumber
17
0 1 2 3 4 5 6
1820 40 22 27 30
Number17
0 1 2 3 4 5 6
2018 40 22 27 30
![Page 46: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/46.jpg)
Example
Third pass
Number17
0 1 2 3 4 5 6
2018 40 22 27 30
![Page 47: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/47.jpg)
Example
Fourth pass
Number17
0 1 2 3 4 5 6
2018 40 22 27 30
Number17
0 1 2 3 4 5 6
2018 22 40 27 30
![Page 48: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/48.jpg)
Example
Fifth passNumber
17
0 1 2 3 4 5 6
2018 22 40 27 30
Number17
0 1 2 3 4 5 6
2018 22 27 40 30
![Page 49: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/49.jpg)
Example
Sixth passNumber
17
0 1 2 3 4 5 6
2018 22 27 40 30
Number17
0 1 2 3 4 5 6
2018 22 27 30 40
![Page 50: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/50.jpg)
Example
Result
Number17
0 1 2 3 4 5 6
2018 22 27 30 40
![Page 51: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/51.jpg)
Code
public void selectionSort(int[] number) {int minIndex, size, temp;size = number.length;
![Page 52: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/52.jpg)
Code
for (int i=0; i<size-2; i++) {minIndex = i;for (int j=i+1; j<size-1; j++) {
if (number[j] < number[minIndex])minIndex=j;
}temp= number[i];number[i]=number[minIndex];number[minIndex] = temp;
}}
![Page 53: Sorting and Searching. Searching Problem definition: Given a value X, return the index of X in the array if such X exist. Otherwise, return NOT_FOUND(-1)](https://reader036.vdocuments.us/reader036/viewer/2022062523/5a4d1b087f8b9ab05998949e/html5/thumbnails/53.jpg)
Complexity analysis
Given an array with n elements, the total number of comparisons is approximately the square of the size of an array (N2)