Site icon C1CTech

Linear Search( Java Implementation)

<p><span style&equals;"color&colon; &num;008000&semi;"><strong>Linear search<&sol;strong><&sol;span> is a very simple search algorithm&period; In this type of search&comma; a sequential search is made over all items one by one&period; Every item is checked and if a match is found then that particular item is returned&comma; otherwise the search continues till the end of the data collection&period;<&sol;p>&NewLine;<p><img class&equals;"alignnone size-full wp-image-67" src&equals;"https&colon;&sol;&sol;c1ctech&period;com&sol;wp-content&sol;uploads&sol;2018&sol;02&sol;linear&lowbar;search&period;png" alt&equals;"linear&lowbar;search" width&equals;"507" height&equals;"164" &sol;><&sol;p>&NewLine;<p>For example&comma; consider an array of integers of size <span id&equals;"MathJax-Element-1-Frame" class&equals;"MathJax&lowbar;SVG" style&equals;"display&colon; inline-block&semi; font-style&colon; normal&semi; font-weight&colon; 400&semi; line-height&colon; normal&semi; font-size&colon; 14px&semi; text-indent&colon; 0px&semi; text-align&colon; left&semi; text-transform&colon; none&semi; letter-spacing&colon; normal&semi; word-spacing&colon; normal&semi; overflow-wrap&colon; normal&semi; white-space&colon; nowrap&semi; float&colon; none&semi; direction&colon; ltr&semi; max-width&colon; none&semi; max-height&colon; none&semi; min-width&colon; 0px&semi; min-height&colon; 0px&semi; border&colon; 0px&semi; padding&colon; 0px&semi; margin&colon; 0px&semi; color&colon; &num;252c33&semi; font-family&colon; 'Open Sans'&comma; sans-serif&semi; font-variant-ligatures&colon; normal&semi; font-variant-caps&colon; normal&semi; orphans&colon; 2&semi; widows&colon; 2&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; &num;ffffff&semi; text-decoration-style&colon; initial&semi; text-decoration-color&colon; initial&semi; position&colon; relative&semi;" tabindex&equals;"0" role&equals;"presentation" data-mathml&equals;"&lt&semi;math xmlns&equals;&quot&semi;http&colon;&sol;&sol;www&period;w3&period;org&sol;1998&sol;Math&sol;MathML&quot&semi;&gt&semi;&lt&semi;mi&gt&semi;N&lt&semi;&sol;mi&gt&semi;&lt&semi;&sol;math&gt&semi;"><span class&equals;"MJX&lowbar;Assistive&lowbar;MathML" role&equals;"presentation">N<&sol;span><&sol;span>&period; You should find and print the position of all the elements with value <span id&equals;"MathJax-Element-2-Frame" class&equals;"MathJax&lowbar;SVG" style&equals;"display&colon; inline-block&semi; font-style&colon; normal&semi; font-weight&colon; 400&semi; line-height&colon; normal&semi; font-size&colon; 14px&semi; text-indent&colon; 0px&semi; text-align&colon; left&semi; text-transform&colon; none&semi; letter-spacing&colon; normal&semi; word-spacing&colon; normal&semi; overflow-wrap&colon; normal&semi; white-space&colon; nowrap&semi; float&colon; none&semi; direction&colon; ltr&semi; max-width&colon; none&semi; max-height&colon; none&semi; min-width&colon; 0px&semi; min-height&colon; 0px&semi; border&colon; 0px&semi; padding&colon; 0px&semi; margin&colon; 0px&semi; color&colon; &num;252c33&semi; font-family&colon; 'Open Sans'&comma; sans-serif&semi; font-variant-ligatures&colon; normal&semi; font-variant-caps&colon; normal&semi; orphans&colon; 2&semi; widows&colon; 2&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; &num;ffffff&semi; text-decoration-style&colon; initial&semi; text-decoration-color&colon; initial&semi; position&colon; relative&semi;" tabindex&equals;"0" role&equals;"presentation" data-mathml&equals;"&lt&semi;math xmlns&equals;&quot&semi;http&colon;&sol;&sol;www&period;w3&period;org&sol;1998&sol;Math&sol;MathML&quot&semi;&gt&semi;&lt&semi;mi&gt&semi;x&lt&semi;&sol;mi&gt&semi;&lt&semi;&sol;math&gt&semi;"><span class&equals;"MJX&lowbar;Assistive&lowbar;MathML" role&equals;"presentation">x<&sol;span><&sol;span>&period; Here&comma; the linear search is based on the idea of matching each element from the beginning of the list to the end of the list with the integer <span id&equals;"MathJax-Element-3-Frame" class&equals;"MathJax&lowbar;SVG" style&equals;"display&colon; inline-block&semi; font-style&colon; normal&semi; font-weight&colon; 400&semi; line-height&colon; normal&semi; font-size&colon; 14px&semi; text-indent&colon; 0px&semi; text-align&colon; left&semi; text-transform&colon; none&semi; letter-spacing&colon; normal&semi; word-spacing&colon; normal&semi; overflow-wrap&colon; normal&semi; white-space&colon; nowrap&semi; float&colon; none&semi; direction&colon; ltr&semi; max-width&colon; none&semi; max-height&colon; none&semi; min-width&colon; 0px&semi; min-height&colon; 0px&semi; border&colon; 0px&semi; padding&colon; 0px&semi; margin&colon; 0px&semi; color&colon; &num;252c33&semi; font-family&colon; 'Open Sans'&comma; sans-serif&semi; font-variant-ligatures&colon; normal&semi; font-variant-caps&colon; normal&semi; orphans&colon; 2&semi; widows&colon; 2&semi; -webkit-text-stroke-width&colon; 0px&semi; background-color&colon; &num;ffffff&semi; text-decoration-style&colon; initial&semi; text-decoration-color&colon; initial&semi; position&colon; relative&semi;" tabindex&equals;"0" role&equals;"presentation" data-mathml&equals;"&lt&semi;math xmlns&equals;&quot&semi;http&colon;&sol;&sol;www&period;w3&period;org&sol;1998&sol;Math&sol;MathML&quot&semi;&gt&semi;&lt&semi;mi&gt&semi;x&lt&semi;&sol;mi&gt&semi;&lt&semi;&sol;math&gt&semi;"><span class&equals;"MJX&lowbar;Assistive&lowbar;MathML" role&equals;"presentation">x<&sol;span><&sol;span>&comma; and then printing the position of the element if the condition is &grave;True&&num;8217&semi;&period;<&sol;p>&NewLine;<&excl;-- WP QUADS Content Ad Plugin v&period; 2&period;0&period;98&period;1 -->&NewLine;<div class&equals;"quads-location quads-ad2" id&equals;"quads-ad2" style&equals;"float&colon;none&semi;margin&colon;0px&semi;">&NewLine;&NewLine;<&sol;div>&NewLine;&NewLine;<h4><span style&equals;"color&colon; &num;000080&semi;"><strong>Algorithm&colon;<&sol;strong><&sol;span><&sol;h4>&NewLine;<ul class&equals;"points">&NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>Step 1&colon;<&sol;strong><&sol;span> Traverse the array<&sol;li>&NewLine;<li><strong><span style&equals;"color&colon; &num;0000ff&semi;">Step 2&colon;<&sol;span><&sol;strong> Match the key element with array element<&sol;li>&NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>Step 3&colon;<&sol;strong><&sol;span> If key element is found&comma; return the index position of the array element<&sol;li>&NewLine;<li><span style&equals;"color&colon; &num;0000ff&semi;"><strong>Step 4&colon;<&sol;strong><&sol;span> If key element is not found&comma; return -1<&sol;li>&NewLine;<&sol;ul>&NewLine;<p>Let&&num;8217&semi;s see an example of linear search in java where we are going to search an element sequentially from an array&period;<&sol;p>&NewLine;<pre style&equals;"padding-left&colon; 30px&semi;"><strong><code><span style&equals;"color&colon; &num;0000ff&semi;">&sol;&sol;Java code for linearly search an item in an arr&lbrack;&rsqb;&period;<&sol;span>&NewLine;<span style&equals;"color&colon; &num;0000ff&semi;">&sol;&sol;If item is present then it will return its index and location <&sol;span>&NewLine;<span style&equals;"color&colon; &num;0000ff&semi;">&sol;&sol;otherwise return -1&NewLine;<&sol;span>public class Search &lbrace;&NewLine;&NewLine;<span style&equals;"color&colon; &num;0000ff&semi;">&sol;&sol;this function returns index of element <span style&equals;"color&colon; &num;008000&semi;">itemToSearch<&sol;span> in arr&lbrack;&rsqb;<&sol;span>&NewLine;public int linearSearch&lpar;int arr&lbrack;&rsqb;&comma; int n&comma; int item&rpar; &NewLine;&lbrace;&NewLine; for &lpar;int i &equals; 0&semi; i &lt&semi;&equals; n&semi; i&plus;&plus;&rpar; &NewLine; &lbrace;&NewLine;<span style&equals;"color&colon; &num;0000ff&semi;"> &sol;&sol;return the index of the element if it is found&NewLine;<&sol;span> if &lpar;item &equals;&equals; arr&lbrack;i&rsqb;&rpar;&NewLine; return i&semi;&NewLine; &rcub;&NewLine;<span style&equals;"color&colon; &num;0000ff&semi;"> &sol;&sol;return -1 if the element is not found&NewLine;<&sol;span> return -1&semi;&NewLine;&rcub;&NewLine;&NewLine;public static void main&lpar;String&lbrack;&rsqb; strr&rpar; &lbrace;&NewLine;int noOfItem&comma; itemToSearch&semi;&NewLine;int arr&lbrack;&rsqb; &equals; &lbrace;7&comma; 9&comma; 12&comma; 24&comma; 13&comma; 67&rcub;&semi;&NewLine;noOfItem &equals; arr&period;length - 1&semi;&NewLine;itemToSearch &equals; 13&semi;&NewLine;int index &equals; new Search&lpar;&rpar;&period;linearSearch&lpar;arr&comma; noOfItem&comma; itemToSearch&rpar;&semi;&NewLine;if &lpar;index&equals;&equals;-1&rpar;&NewLine;System&period;out&period;println&lpar;"item does not exist"&rpar;&semi;&NewLine;else&NewLine;System&period;out&period;println&lpar;"Item"&plus;" " &plus;itemToSearch&plus;" " &plus; "found at index &colon;" &plus; index &plus; " and " &plus;"position &colon;" &plus; &lpar;index&plus;1&rpar;&rpar;&semi;&NewLine;&rcub;&NewLine;&NewLine;&rcub;<&sol;code><&sol;strong><&sol;pre>&NewLine;<h4><span style&equals;"color&colon; &num;000080&semi;"><strong>Output&colon;<&sol;strong><&sol;span><&sol;h4>&NewLine;<p><span style&equals;"color&colon; &num;0000ff&semi;"><strong>Item 13 found at index &colon;4 and position &colon;5<&sol;strong><&sol;span><&sol;p>&NewLine;<h4><span style&equals;"color&colon; &num;000080&semi;"><strong>Time Complexity&colon;<&sol;strong><&sol;span><&sol;h4>&NewLine;<p>The time complexity of the linear search is <strong><span id&equals;"MathJax-Element-9-Frame" class&equals;"MathJax&lowbar;SVG" style&equals;"display&colon; inline-block&semi; font-style&colon; normal&semi; line-height&colon; normal&semi; font-size&colon; 14px&semi; text-indent&colon; 0px&semi; text-align&colon; left&semi; text-transform&colon; none&semi; letter-spacing&colon; normal&semi; word-spacing&colon; normal&semi; overflow-wrap&colon; normal&semi; white-space&colon; nowrap&semi; float&colon; none&semi; direction&colon; ltr&semi; max-width&colon; none&semi; max-height&colon; none&semi; min-width&colon; 0px&semi; min-height&colon; 0px&semi; border&colon; 0px&semi; padding&colon; 0px&semi; margin&colon; 0px&semi; position&colon; relative&semi; color&colon; &num;008000&semi;" tabindex&equals;"0" role&equals;"presentation" data-mathml&equals;"&lt&semi;math xmlns&equals;&quot&semi;http&colon;&sol;&sol;www&period;w3&period;org&sol;1998&sol;Math&sol;MathML&quot&semi;&gt&semi;&lt&semi;mi&gt&semi;O&lt&semi;&sol;mi&gt&semi;&lt&semi;mo stretchy&equals;&quot&semi;false&quot&semi;&gt&semi;&lpar;&lt&semi;&sol;mo&gt&semi;&lt&semi;mi&gt&semi;N&lt&semi;&sol;mi&gt&semi;&lt&semi;mo stretchy&equals;&quot&semi;false&quot&semi;&gt&semi;&rpar;&lt&semi;&sol;mo&gt&semi;&lt&semi;&sol;math&gt&semi;"><span class&equals;"MJX&lowbar;Assistive&lowbar;MathML" role&equals;"presentation">O&lpar;N&rpar;<&sol;span><&sol;span><&sol;strong> because each element in an array is compared only once&period;<&sol;p>&NewLine;<p>Linear search is rarely used practically because other search algorithms such as the <span style&equals;"color&colon; &num;008000&semi;"><strong>binary search<&sol;strong><&sol;span> algorithm and <span style&equals;"color&colon; &num;008000&semi;"><strong>hash tables<&sol;strong><&sol;span> allow significantly faster searching comparison to Linear search&period;<&sol;p>&NewLine;<p>&nbsp&semi;<&sol;p>&NewLine;&NewLine;

Exit mobile version