Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions Searching Algorithm/LinearSearch.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#include <stdio.h>

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;
}
53 changes: 53 additions & 0 deletions Sorting Algorithms/BitonicSort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#include<stdio.h>
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; i<l+k; i++)
exchange(arr, i, i+k, d);
merge(arr, l, k, d);
merge(arr, l+k, k, d);
}
}
void bitonicSort(int arr[],int l, int c, int d)
{
int k;
if (c>1)
{
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<n;i++)
{
scanf("%d",&arr[i]);
}
sort(arr, n, order);

printf("Sorted array: \n");
for (i=0; i<n; i++)
printf("%d ", arr[i]);
}
104 changes: 104 additions & 0 deletions Sorting Algorithms/TimSort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
#include<stdio.h>
const int run = 32;
int minimum(int a, int b)
{
if(a<b)
return a;
else
return b;
}
void insertionSort(int a[], int beg, int end)
{
int temp, i, j;
for (i = beg + 1; i <= end; i++)
{
temp = a[i];
j = i - 1;
while (a[j] > 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<n;i++)
{
scanf("%d",&a[i]);
}
printf("Printing Array elements \n");
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
timSort(a, n);

printf("Printing sorted array elements \n");
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
49 changes: 49 additions & 0 deletions Sorting Algorithms/cocktailsort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#include <stdio.h>
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<n;i++)
{
scanf("%d",&arr[i]);
}
Cocktail(arr, n);
printf("printing sorted array :\n");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
49 changes: 49 additions & 0 deletions cocktailsort.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#include <stdio.h>
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<n;i++)
{
scanf("%d",&arr[i]);
}
Cocktail(arr, n);
printf("printing sorted array :\n");
for (i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}