Búsqueda lineal vs búsqueda binaria

 

Requisito previo:

BÚSQUEDA LINEAL

C++

// Linear Search in C++
  
#include <iostream>
using namespace std;
  
int search(int array[], int n, int x)
{
  
    // Going through array sequencially
    for (int i = 0; i < n; i++)
        if (array[i] == x)
            return i;
    return -1;
}

Python

# Linear Search in Python
  
  
def linearSearch(array, n, x):
  
    for i in range(0, n):
        if (array[i] == x):
            return i
    return -1

Java

/*package whatever //do not write package name here */
  
import java.io.*;
  
class Main {
    public static int liner(int arr[], int x)
    {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == x)
                return i;
        }
        return -1;
    }
}

C

// Linear Search in C
  
#include <stdio.h>
  
int search(int array[], int n, int x)
{
  
    // Going through array sequencially
    for (int i = 0; i < n; i++)
        if (array[i] == x)
            return i;
    return -1;
}

Java

/*package whatever //do not write package name here */
  
class GFG {
    public static int binary(int[] arr, int x)
    {
        int start = 0;
        int end = arr.length - 1;
        while (start <= end) {
            int mid = (start + end) / 2;
            if (x == arr[mid]) {
                return mid;
            }
            else if (x > arr[mid]) {
                start = mid + 1;
            }
            else {
                end = mid - 1;
            }
        }
        return -1;
    }
}

C

#include <stdio.h>
  
int binarySearch(int array[], int x, int low, int high)
{
    // Repeat until the pointers low and high meet each
    // other
    while (low <= high) {
        int mid = low + (high - low) / 2;
  
        if (array[mid] == x)
            return mid;
  
        if (array[mid] < x)
            low = mid + 1;
  
        else
            high = mid - 1;
    }
  
    return -1;
}

C++

#include <iostream>
using namespace std;
  
int binarySearch(int array[], int x, int low, int high)
{
  
    // Repeat until the pointers low and high meet each
    // other
    while (low <= high) {
        int mid = low + (high - low) / 2;
  
        if (array[mid] == x)
            return mid;
  
        if (array[mid] < x)
            low = mid + 1;
  
        else
            high = mid - 1;
    }
  
    return -1;
}

Python

def binarySearch(array, x, low, high):
  
    # Repeat until the pointers low and high meet each other
    while low <= high:
  
        mid = low + (high - low)//2
  
        if array[mid] == x:
            return mid
  
        elif array[mid] < x:
            low = mid + 1
  
        else:
            high = mid - 1
  
    return -1

Java

/*package whatever //do not write package name here */
import java.io.*;
  
class GFG {
    public static int liner(int arr[], int x)
    {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == x)
                return i;
        }
        return -1;
    }
    public static void main(String[] args)
    {
        int arr[] = { 1, 3, 5, 7, 9, 8 };
        int search = liner(
            arr,
            10); // Here we are searching for 10 element in
                 // the array which is not present in the
                 // array so, it will print -1
        System.out.println(search);
    }
}

C++

#include <iostream>
using namespace std;
  
int search(int array[], int n, int x)
{
  
    // Going through array sequencially
    for (int i = 0; i < n; i++)
        if (array[i] == x)
            return i;
    return -1;
}
  
int GFG()
{
    int array[] = { 12, 114, 0, 4, 9 };
    int x = 4;
    int n = sizeof(array) / sizeof(array[0]);
  
    int result = search(array, n, x);
  
    (result == -1)
        ? cout << "Element not found"
        : cout << "Element found at index: " << result;
}

C

#include <stdio.h>
  
int search(int array[], int n, int x)
{
  
    // Going through array sequencially
    for (int i = 0; i < n; i++)
        if (array[i] == x)
            return i;
    return -1;
}
  
int GFG()
{
    int array[] = { 24, 40, 10, 11, 9 };
    int x = 1;
    int n = sizeof(array) / sizeof(array[0]);
  
    int result = search(array, n, x);
  
    (result == -1)
        ? printf("Element not found")
        : printf("Element found at index: %d", result);
}

Python

def linearSearch(array, n, x):
  
    for i in range(0, n):
        if (array[i] == x):
            return i
    return -1
  
  
array = [24, 41, 31, 11, 9]
x = 11
n = len(array)
result = linearSearch(array, n, x)
if(result == -1):
    print("Element not found")
else:
    print("Element is Present at Index: ", result)

Java

/*package whatever //do not write package name here */
  
public class GFG {
    public static int binary(int arr[], int x)
    {
        int start = 0;
        int end = arr.length - 1;
        while (start <= end) {
            int mid = (start + end) / 2;
            if (x == arr[mid]) {
                return mid;
            }
            else if (x > arr[mid]) {
                start = mid + 1;
            }
            else {
                end = mid - 1;
            }
        }
        return -1;
    }
    public static void main(String[] args)
    {
        int arr[] = { 2, 4, 5, 17, 14, 7, 11, 22 };
        int search = binary(arr, 22);
        System.out.println(search);
    }
}

Python

def binarySearch(array, x, low, high):
  
    while low <= high:
  
        mid = low + (high - low)//2
  
        if array[mid] == x:
            return mid
  
        elif array[mid] < x:
            low = mid + 1
  
        else:
            high = mid - 1
  
    return -1
  
  
array = [2, 4, 5, 17, 14, 7, 11, 22]
x = 22
  
result = binarySearch(array, x, 0, len(array)-1)
  
if result != -1:
    print(str(result))
else:
    print("Not found")

C++

#include <iostream>
using namespace std;
  
int binarySearch(int array[], int x, int low, int high)
{
  
    while (low <= high) {
        int mid = low + (high - low) / 2;
  
        if (array[mid] == x)
            return mid;
  
        if (array[mid] < x)
            low = mid + 1;
  
        else
            high = mid - 1;
    }
  
    return -1;
}
  
int GFG(void)
{
    int array[] = {
  
#include <iostream>
        using namespace std;
  
    int binarySearch(int array[], int x, int low, int high)
    {
  
        // Repeat until the pointers low and high meet each
        // other
        while (low <= high) {
            int mid = low + (high - low) / 2;
  
            if (array[mid] == x)
                return mid;
  
            if (array[mid] < x)
                low = mid + 1;
  
            else
                high = mid - 1;
        }
  
        return -1;
    }
  
    int main(void)
    {
        int array[] = { 2, 4, 5, 17, 14, 7, 11, 22 };
        int x = 22;
        int n = sizeof(array) / sizeof(array[0]);
        int result = binarySearch(array, x, 0, n - 1);
        if (result == -1)
            printf("Not found");
        else
            printf("Element is found at index %d", result);
    }
};
int x = 4;
int n = sizeof(array) / sizeof(array[0]);
int result = binarySearch(array, x, 0, n - 1);
if (result == -1)
    printf("Not found");
else
    printf("Element is found at index %d", result);
}

C

#include <stdio.h>
  
int binarySearch(int array[], int x, int low, int high)
{
    // Repeat until the pointers low and high meet each
    // other
    while (low <= high) {
        int mid = low + (high - low) / 2;
  
        if (array[mid] == x)
            return mid;
  
        if (array[mid] < x)
            low = mid + 1;
  
        else
            high = mid - 1;
    }
  
    return -1;
}
  
int GFG(void)
{
    int array[] = { 2, 4, 5, 17, 14, 7, 11, 22 };
    int n = sizeof(array) / sizeof(array[0]);
    int x = 22;
    int result = binarySearch(array, x, 0, n - 1);
    if (result == -1)
        printf("Not found");
    else
        printf("Element is found at index %d", result);
    return 0;
}

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *