logo

Ц програм за претрагу елемента у низу

У овом чланку ћемо разговарати о Ц програму за тражење елемента у низу са њиховим различитим начинима и примерима.

Шта је низ?

А структура података под називом ан низ садржи серију предмета идентичног типа фиксне дужине. Често се користи за складиштење и манипулисање збиркама података јер индексирање омогућава ефикасан приступ.

линук промени име директоријума

Пример: интнумберс[] = {10, 20, 30, 40, 50};

Претраживање елемента у низу

Типична операција у компјутерском програмирању је тражење одређеног елемента у низу. Ефикасност вашег кода може се знатно побољшати коришћењем ефикасних алгоритама претраживања било да тражите постојање одређене вредности лоцирајући индекс елемента или проверава да ли елемент постоји. У овом чланку биће речи о многим методама за тражење елемената у низу помоћу програмског језика Ц.

Постоје углавном два начина за претрагу елемента у низу:

1. Линеарна претрага

Позива се једноставна стратегија претраживања која се користи за лоцирање датог елемента у низу или листи линеарно претраживање , који се понекад назива секвенцијална претрага . Он функционише тако што упоређује сваки члан низа са циљном вредношћу да би се пронашао а меч или прећи пуни низ итеративно.

терминал кали линук

Основни кораци у линеарном претраживању су следећи:

    Почетак са највишим елементима низа.
  1. Циљну вредност треба упоредити са тренутним елементом.
  2. Претрага је успешна ако тренутни елемент одговара траженој вредности, а затим алгоритам може да врати индекс елемента или било који други жељени излаз.
  3. Идите на следећи елемент у низу ако тренутни елемент не одговара жељеној вредности.
  4. Док се не поклапа или не дође до краја низа, поновите кораке 2-4.

Програм:

 #include int linearSearch(int arr[], int n, int target) { for (int i = 0; i<n; i++) { if (arr[i]="=" target) return i; the index target is found } -1; -1 not int main() arr[]="{5," 2, 8, 12, 3}; n="sizeof(arr)" sizeof(arr[0]); calculate number of elements in array result="linearSearch(arr," n, target); (result="=" -1) printf('element found
'); else at %d
', result); 0; < pre> <p> <strong>Output:</strong> </p> <pre> An element found at index 2 </pre> <h3>2. Binary Search</h3> <p>The <strong> <em>binary search</em> </strong> technique is utilized to quickly locate a specific element in a sorted <strong> <em>array</em> </strong> or <strong> <em>list</em> </strong> . It uses a <strong> <em>divide-and-conquer</em> </strong> <strong> <em>strategy</em> </strong> , periodically cutting the search area in half until the target element is located or found to be absent.</p> <p>This is how binary search functions:</p> <ol class="points"> <li>Have a sorted array or list as a base.</li> <li>Establish two pointers, <strong> <em>left</em> </strong> and <strong> <em>right</em> </strong> , with their initial values pointing to the array&apos;s first and end members.</li> <li>Use <strong> <em>(left + right) / 2</em> </strong> to get the index of the center element.</li> <li>Compare the target value to the middle element. <ol class="pointsa"> <li>The search is successful if they are equal, and then the program can return the <strong> <em>index</em> </strong> or any other required result.</li> <li>The right pointer should be moved to the element preceding the <strong> <em>middle element</em> </strong> if the middle element is greater than the target value.</li> <li>Move the <strong> <em>left pointer</em> </strong> to the element following the <strong> <em>middle element</em> </strong> if the middle element&apos;s value is less than the target value.</li> </ol></li> <li>Steps <strong> <em>3</em> </strong> and <strong> <em>4</em> </strong> should be repeated until the target element is located or the left pointer exceeds the right pointer.</li> <li>The desired element is not in the array if it cannot be located.</li> </ol> <p> <strong>Program:</strong> </p> <pre> #include int binarySearch(int arr[], int left, int right, int target) { while (left <= right) { int mid="left" + (right-left) 2; if (arr[mid]="=" target) return mid; the index target is found } < left="mid" 1; else right="mid-1;" -1; -1 not main() arr[]="{2," 5, 8, 12, 20, 23, 28}; n="sizeof(arr)" sizeof(arr[0]); calculate number of elements in array result="binarySearch(arr," 0, - 1, target); (result="=" -1) printf('element found
'); at %d
', result); 0; pre> <p> <strong>Output:</strong> </p> <pre> An element found at index 4 </pre> <hr></=></pre></n;>

2. Бинарно претраживање

Тхе бинарно претраживање техника се користи за брзо лоцирање одређеног елемента у сортираном низ или листа . Користи а завади па владај стратегија , периодично пресецајући област претраге на пола док се циљни елемент не пронађе или утврди да је одсутан.

Овако функционише бинарно претраживање:

  1. Имајте сортирани низ или листу као основу.
  2. Поставите два показивача, лево и јел тако , са њиховим почетним вредностима које указују на прве и крајње чланове низа.
  3. Користите (лево + десно) / 2 да се добије индекс централног елемента.
  4. Упоредите циљну вредност са средњим елементом.
    1. Претрага је успешна ако су једнаки, а онда програм може да врати индекс или било који други тражени резултат.
    2. Десни показивач треба да се помери на елемент који претходи средњи елемент ако је средњи елемент већи од циљне вредности.
    3. Померите леви показивач елементу који следи средњи елемент ако је вредност средњег елемента мања од циљне вредности.
  5. Степс 3 и 4 треба понављати све док се циљни елемент не пронађе или док леви показивач не пређе десни показивач.
  6. Жељени елемент се не налази у низу ако се не може лоцирати.

Програм:

 #include int binarySearch(int arr[], int left, int right, int target) { while (left <= right) { int mid="left" + (right-left) 2; if (arr[mid]="=" target) return mid; the index target is found } < left="mid" 1; else right="mid-1;" -1; -1 not main() arr[]="{2," 5, 8, 12, 20, 23, 28}; n="sizeof(arr)" sizeof(arr[0]); calculate number of elements in array result="binarySearch(arr," 0, - 1, target); (result="=" -1) printf(\'element found
\'); at %d
\', result); 0; pre> <p> <strong>Output:</strong> </p> <pre> An element found at index 4 </pre> <hr></=>