diff --git a/Searching/java/Linearsearch.java b/Searching/java/Linearsearch.java new file mode 100644 index 0000000..25fda24 --- /dev/null +++ b/Searching/java/Linearsearch.java @@ -0,0 +1,29 @@ +// Java code for linearly searching x in arr[]. If x +// is present then return its location, otherwise +// return -1 + +class GFG +{ +public static int search(int arr[], int x) +{ + int n = arr.length; + for(int i = 0; i < n; i++) + { + if(arr[i] == x) + return i; + } + return -1; +} + +public static void main(String args[]) +{ + int arr[] = { 2, 3, 4, 10, 40 }; + int x = 10; + + int result = search(arr, x); + if(result == -1) + System.out.print("Element is not present in array"); + else + System.out.print("Element is present at index " + result); +} +} diff --git a/Sorting/Radixsort.cpp b/Sorting/Radixsort.cpp new file mode 100644 index 0000000..18fa521 --- /dev/null +++ b/Sorting/Radixsort.cpp @@ -0,0 +1,73 @@ +// C++ implementation of Radix Sort +#include +using namespace std; + +// A utility function to get maximum value in arr[] +int getMax(int arr[], int n) +{ + int mx = arr[0]; + for (int i = 1; i < n; i++) + if (arr[i] > mx) + mx = arr[i]; + return mx; +} + +// A function to do counting sort of arr[] according to +// the digit represented by exp. +void countSort(int arr[], int n, int exp) +{ + int output[n]; // output array + int i, count[10] = {0}; + + // Store count of occurrences in count[] + for (i = 0; i < n; i++) + count[ (arr[i]/exp)%10 ]++; + + // Change count[i] so that count[i] now contains actual + // position of this digit in output[] + for (i = 1; i < 10; i++) + count[i] += count[i - 1]; + + // Build the output array + for (i = n - 1; i >= 0; i--) + { + output[count[ (arr[i]/exp)%10 ] - 1] = arr[i]; + count[ (arr[i]/exp)%10 ]--; + } + + // Copy the output array to arr[], so that arr[] now + // contains sorted numbers according to current digit + for (i = 0; i < n; i++) + arr[i] = output[i]; +} + +// The main function to that sorts arr[] of size n using +// Radix Sort +void radixsort(int arr[], int n) +{ + // Find the maximum number to know number of digits + int m = getMax(arr, n); + + // Do counting sort for every digit. Note that instead + // of passing digit number, exp is passed. exp is 10^i + // where i is current digit number + for (int exp = 1; m/exp > 0; exp *= 10) + countSort(arr, n, exp); +} + +// A utility function to print an array +void print(int arr[], int n) +{ + for (int i = 0; i < n; i++) + cout << arr[i] << " "; +} + +// Driver program to test above functions +int main() +{ + int arr[] = {170, 45, 75, 90, 802, 24, 2, 66}; + int n = sizeof(arr)/sizeof(arr[0]); + radixsort(arr, n); + print(arr, n); + return 0; +}