diff --git a/Sorting Algos/bubblesort.cpp b/Sorting Algos/bubblesort.cpp new file mode 100644 index 0000000..6e1833c --- /dev/null +++ b/Sorting Algos/bubblesort.cpp @@ -0,0 +1,27 @@ +void swap(int *a , int *b) +{ + *a = *a + *b; + *b = *a - *b; + *a = *a - *b; +} + +void bub_sort(int a[], int size) +{ + + for(int i =size-1; i > 0; i--) + { + int flag = 0; + + for(int j = 0; j < i; j++) + { + if(a[j] > a[j+1]) + { + swap(a+j, a+j+1); + + flag = 1; + } + + } + if(flag == 0) break; + } +} diff --git a/Sorting Algos/insert_sort.cpp b/Sorting Algos/insert_sort.cpp new file mode 100644 index 0000000..ece5873 --- /dev/null +++ b/Sorting Algos/insert_sort.cpp @@ -0,0 +1,19 @@ +void insert_sort(int a[], int size) +{ + int i, j, item; + + for(i = 1; i < size; i++) + { + item = a[i]; + + j = i-1; + + while((item < a[j]) && (j >= 0)) + { + a[j+1] = a[j]; + j--; + } + + a[j+1] = item; + } +} diff --git a/Sorting Algos/select_sort.cpp b/Sorting Algos/select_sort.cpp new file mode 100644 index 0000000..3d1bcd7 --- /dev/null +++ b/Sorting Algos/select_sort.cpp @@ -0,0 +1,33 @@ +int minloc(int A[], int k, int size) +{ + int min = k; + + for(int i = k; i < size; i++) + { + if(A[i] < A[min]) + { + min = i; + } + } + return min; +} + +void swap(int *a, int *b) +{ + int t; + t=*a; + *a=*b; + *b=t; + +} + + +void selec_sort(int A[], int size) +{ + for(int i = 0; i < size; i++) + { + int temp = minloc(A,i,size); + swap(&A[temp],A+i); + + } +} diff --git a/stacks.c b/stacks.c new file mode 100644 index 0000000..22af687 --- /dev/null +++ b/stacks.c @@ -0,0 +1,70 @@ +#include +//stack array + + +#include + +#define MAX 100 + +struct lifo { + + int st[MAX] + + int top; +}; + +typedef struct lifo stack; + + +void create (stack* s){ + + (*s).top = -1; + +} + +void push (stack* s, int element) { + + if((*s).top == (MAX-1)){ + + printf("\nStack Overflow"); + exit(-1); + + } + + else { + + (*s).top++; + + s->((*s).top) = element; //trail + } +} + +int pop (stack *s) { + + if ((*s).top == -1){ + + printf ("\nStack underflow"); + + exit(-1); + } + + else { + + return ((*s).st[(*s).top--]); + } +} + +int ifempty(stack s) { + + if (s.to == -1) return 1; + + else return 0; + +} + +int isfull (stack s) { + + if(s.top == (MAX-1)) return 1; + + else return 0; +} diff --git a/swap.cpp b/swap.cpp new file mode 100644 index 0000000..46735e4 --- /dev/null +++ b/swap.cpp @@ -0,0 +1,9 @@ +#include + +void swap(int *a, int *b) +{ + + *a = *a + *b; + *b = *a - *b; + *a = *a - *b; +}