diff --git a/Searching Algorithm/LinearSearch.c b/Searching Algorithm/LinearSearch.c new file mode 100644 index 0000000..7ddecd4 --- /dev/null +++ b/Searching Algorithm/LinearSearch.c @@ -0,0 +1,30 @@ +#include + +int main() +{ + int array[100], search, c, n; + + printf("Enter number of elements in array\n"); + scanf("%d", &n); + + printf("Enter %d integer(s)\n", n); + + for (c = 0; c < n; c++) + scanf("%d", &array[c]); + + printf("Enter a number to search\n"); + scanf("%d", &search); + + for (c = 0; c < n; c++) + { + if (array[c] == search) + { + printf("%d is present at location %d.\n", search, c+1); + break; + } + } + if (c == n) + printf("%d isn't present in the array.\n", search); + + return 0; +} diff --git a/Sorting Algorithms/BitonicSort.c b/Sorting Algorithms/BitonicSort.c new file mode 100644 index 0000000..0ca9c68 --- /dev/null +++ b/Sorting Algorithms/BitonicSort.c @@ -0,0 +1,53 @@ +#include +void exchange(int arr[], int i, int j, int d) +{ + int temp; + if (d==(arr[i]>arr[j])) + { + temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } +} +void merge(int arr[], int l, int c, int d) +{ + int k,i; + if (c>1) + { + k = c/2; + for (i=l; i1) + { + k = c/2; + bitonicSort(arr, l, k, 1); + bitonicSort(arr, l+k, k, 0); + merge(arr,l, c, d); + } +} + +void sort(int arr[], int n, int order) +{ + bitonicSort(arr,0, n, order); +} +int main() +{ + int arr[100],n,i,order = 1; + scanf("%d",&n); + for(i=0;i +const int run = 32; +int minimum(int a, int b) +{ + if(a temp && j >= beg) + { + a[j+1] = a[j]; + j--; + } + a[j+1] = temp; + } +} + +void merge(int a[], int left, int mid, int right) +{ + int len1 = mid - left + 1, len2 = right - mid; + int beg[len1], end[len2]; + int i,j,k; + for (i = 0; i < len1; i++) + beg[i] = a[left + i]; + for (i = 0; i < len2; i++) + end[i] = a[mid + 1 + i]; + + i = 0; + j = 0; + k = left; + + while (i < len1 && j < len2) + { + if (beg[i] <= end[j]) + { + a[k] = beg[i]; + i++; + } + else + { + a[k] = end[j]; + j++; + } + k++; + } + while (i < len1) + { + a[k] = beg[i]; + k++; + i++; + } + + while (j < len2) + { + a[k] = end[j]; + k++; + j++; + } +} +void timSort(int a[], int n) +{ + int i,size,beg,mid,end; + for (i = 0; i < n; i+=run) + insertionSort(a, i, minimum((i+31), (n-1))); + for (size = run; size < n; size = 2*size) + { + for (beg = 0; beg < n; beg += 2*size) + { + mid = beg + size - 1; + end = minimum((beg + 2*size - 1), (n-1)); + + merge(a, beg, mid, end); + } + } +} + +int main() +{ + int a[100],n,i; + scanf("%d",&n); + for(i=0;i +int temp; +void Cocktail(int a[], int n) +{ + int is_swapped = 1; + int begin = 0,i; + int end = n - 1; + + while (is_swapped) { + is_swapped = 0; + for (i = begin; i < end; ++i) { + if (a[i] > a[i + 1]) { + temp = a[i]; + a[i]=a[i+1]; + a[i+1]=temp; + is_swapped = 1; + } + } + if (!is_swapped) + break; + is_swapped = 0; + for (i = end - 1; i >= begin; --i) { + if (a[i] > a[i + 1]) + { + temp = a[i]; + a[i]=a[i+1]; + a[i+1]=temp; + is_swapped = 1; + } + } + ++begin; + } +} + +int main() +{ + int arr[100],n,i; + scanf("%d",&n); + for(i=0;i +int temp; +void Cocktail(int a[], int n) +{ + int is_swapped = 1; + int begin = 0,i; + int end = n - 1; + + while (is_swapped) { + is_swapped = 0; + for (i = begin; i < end; ++i) { + if (a[i] > a[i + 1]) { + temp = a[i]; + a[i]=a[i+1]; + a[i+1]=temp; + is_swapped = 1; + } + } + if (!is_swapped) + break; + is_swapped = 0; + for (i = end - 1; i >= begin; --i) { + if (a[i] > a[i + 1]) + { + temp = a[i]; + a[i]=a[i+1]; + a[i+1]=temp; + is_swapped = 1; + } + } + ++begin; + } +} + +int main() +{ + int arr[100],n,i; + scanf("%d",&n); + for(i=0;i