From 58d25d4f98720aaa71367a3f75bf3f4e58657075 Mon Sep 17 00:00:00 2001 From: sharmaninaad Date: Wed, 25 Oct 2017 18:56:08 +0530 Subject: [PATCH 1/6] adding bubble sort --- Sorts_java/QuickSort.java | 51 +++++++++++++++++++++++++++++++++++++ Sorts_java/bubble_sort.java | 19 ++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 Sorts_java/QuickSort.java create mode 100644 Sorts_java/bubble_sort.java diff --git a/Sorts_java/QuickSort.java b/Sorts_java/QuickSort.java new file mode 100644 index 0000000..b3d6d68 --- /dev/null +++ b/Sorts_java/QuickSort.java @@ -0,0 +1,51 @@ +import java.util.Scanner; +public class QuickSort +{ + public static void sort(int[] arr) + { + quickSort(arr, 0, arr.length - 1); + } + public static void quickSort(int arr[], int low, int high) + { + int i = low, j = high; + int temp; + int pivot = arr[(low + high) / 2]; + while (i <= j) + { + while (arr[i] < pivot) + i++; + while (arr[j] > pivot) + j--; + if (i <= j) + { + temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + + i++; + j--; + } + } + if (low < j) + quickSort(arr, low, j); + if (i < high) + quickSort(arr, i, high); + } + public static void main(String[] args) + { + Scanner scan = new Scanner( System.in ); + System.out.println("Quick Sort Test\n"); + int n, i; + System.out.println("Enter number of integer elements"); + n = scan.nextInt(); + int arr[] = new int[ n ]; + System.out.println("\nEnter "+ n +" integer elements"); + for (i = 0; i < n; i++) + arr[i] = scan.nextInt(); + sort(arr); + System.out.println("\nElements after sorting "); + for (i = 0; i < n; i++) + System.out.print(arr[i]+" "); + System.out.println(); + } +} \ No newline at end of file diff --git a/Sorts_java/bubble_sort.java b/Sorts_java/bubble_sort.java new file mode 100644 index 0000000..ffe5d74 --- /dev/null +++ b/Sorts_java/bubble_sort.java @@ -0,0 +1,19 @@ + +public class bubble_sort { + public static void b_sort(int arr[]) + { + int len=arr.length; + for(int i=0;iarr[j+1]) + { + int temp=arr[j]; + arr[j]=arr[j+1]; + arr[j+1]=temp; + } + } + } +} +} From 96caf55cf8d598d8bd33eee385eeb315d399c70f Mon Sep 17 00:00:00 2001 From: N Balgopal Patro <46865367+balgopal123@users.noreply.github.com> Date: Tue, 1 Oct 2019 14:57:32 +0530 Subject: [PATCH 2/6] Adding Picture for README --- data.jpg | Bin 0 -> 65057 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data.jpg diff --git a/data.jpg b/data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61fbf13562c68acada1434a7631657e87d591fc1 GIT binary patch literal 65057 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 literal 0 HcmV?d00001 From 96b0a2d6e3529db88b26730dfaf9600e9a5d5fec Mon Sep 17 00:00:00 2001 From: N Balgopal Patro <46865367+balgopal123@users.noreply.github.com> Date: Tue, 1 Oct 2019 14:59:05 +0530 Subject: [PATCH 3/6] I added links to the README.md --- README.md | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5315df5..391a225 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,34 @@ -This repository contains Data Structures and Algorithms codes - -* Linked Lists -* Stacks and Queues -* Sorting Techniques -* Trees -* +# DSA-codes +### This repository contains Data Structures and Algorithms codes + +

From 3aba98a1b8284a824896dbe9a22af73f4f6661db Mon Sep 17 00:00:00 2001 From: akshat Date: Wed, 2 Oct 2019 01:07:28 +0530 Subject: [PATCH 4/6] added wavelet and segment tree in c++ --- C++/WaveletTree.cpp | 130 ++++++++++++++++++++++++++++++++++++++++++++ C++/segment.cpp | 90 ++++++++++++++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 C++/WaveletTree.cpp create mode 100644 C++/segment.cpp diff --git a/C++/WaveletTree.cpp b/C++/WaveletTree.cpp new file mode 100644 index 0000000..2258322 --- /dev/null +++ b/C++/WaveletTree.cpp @@ -0,0 +1,130 @@ +#include +using namespace std; +#define gc getchar_unlocked +#define fo(i,n) for(i=0;in;k +using namespace std; +#define ll long long int + +struct tr{ + ll sum,lsum,rsum,ans; +}; + +ll ar[100001]; +tr seg[400001]; + +tr merge(tr a,tr b){ + tr k; + k.sum=a.sum+b.sum; + ll m=max(b.ans,a.rsum+b.lsum); + k.ans=max(m,a.ans); + k.lsum=max(a.lsum,a.sum+b.lsum); + k.rsum=max(b.rsum,b.sum+a.rsum); + return k; +} + +void build(ll pos,ll l,ll h){ + if(l==h){ + seg[pos].sum=seg[pos].lsum=seg[pos].rsum=seg[pos].ans=ar[l]; + return; + } + ll b=(l+h)/2; + build(2*pos,l,b); + build(2*pos+1,b+1,h); + seg[pos]=merge(seg[2*pos],seg[2*pos+1]); + return; +} + +tr get(ll pos,ll l,ll h,ll st,ll en){ + if(l>en || h=h){ + return seg[pos]; + } + ll b=(l+h)/2; + return merge(get(2*pos,l,b,st,en),get(2*pos+1,b+1,h,st,en)); +} + +void sett(ll pos,ll l,ll h,ll i,ll x){ + if(l==h){ + ar[l]=x; + seg[pos].sum=seg[pos].lsum=seg[pos].rsum=seg[pos].ans=x; + return; + } + ll b=(l+h)/2; + if(i<=b){ + sett(2*pos,l,b,i,x); + } + else{ + sett(2*pos+1,b+1,h,i,x); + } + seg[pos]=merge(seg[2*pos],seg[2*pos+1]); + return; +} + + int main(){ + ios_base::sync_with_stdio(0); + cin.tie(0); + cout.tie(0); + ll n; + cin>>n; + for(ll i=1;i<=n;i++){ + cin>>ar[i]; + } + build(1,1,n); + ll m; + cin>>m; + for(ll i=1;i<=m;i++){ + ll a,b,c; + cin>>a>>b>>c; + if(a==1){ + cout << get(1,1,n,b,c).ans << "\n"; + } + else{ + sett(1,1,n,b,c); + } + } + return 0; + } \ No newline at end of file From 89d6157d7801de3b72333fef364e80e78cb4533f Mon Sep 17 00:00:00 2001 From: Aman Khandelwal Date: Wed, 9 Oct 2019 00:49:04 +0530 Subject: [PATCH 5/6] Linked_List_Codes --- Linked_List/Doubly_LL.c | 54 +++++++++++++++++++ Linked_List/LinkList.c | 115 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100755 Linked_List/Doubly_LL.c create mode 100755 Linked_List/LinkList.c diff --git a/Linked_List/Doubly_LL.c b/Linked_List/Doubly_LL.c new file mode 100755 index 0000000..6dfab20 --- /dev/null +++ b/Linked_List/Doubly_LL.c @@ -0,0 +1,54 @@ +#include +#include + + +struct node { + int data; + struct node* next; + struct node* prev; +} + +void insertFirst(struct node **header,struct node **tail, int d) +{ + struct node* t=(struct node*)malloc(sizeof(struct node)); + t->data=d; + if (*header==NULL) + { + t->next=NULL; + t->prev=NULL; + *tail=t; + } + else + { + t->next=*header; + t->prev=NULL; + *header->prev=t; + } + *header=t; +} +void deleteNode(struct node* header, int d) +{ + while(header!=NULL) + { + if (header->data==d) + break; + header=header->next; + } + if (header!=NULL) + { + struct node* t=header; + t->prev->next=t->next; + t->next->prev=t->prev; + free(t); + } +} +void main() +{ + struct node* head=NULL; + struct node* tail=NULL; + insertFirst(&head,&tail,10) + insertFirst(&head,&tail,15) + insertFirst(&head,&tail,25) + deleteNode(head,15); + +} diff --git a/Linked_List/LinkList.c b/Linked_List/LinkList.c new file mode 100755 index 0000000..b31c0da --- /dev/null +++ b/Linked_List/LinkList.c @@ -0,0 +1,115 @@ +#include +#include + +struct node { + int data; + struct node* next; +}; + +void insertFirst(struct node **header, int d) +{ + struct node* t=(struct node *) malloc(sizeof(struct node)); + if (*header==NULL) + { + t->data=d; + t->next=NULL; + } + else + { + t->data=d; + t->next=*header; + } + *header=t; +} +void insertAfter(struct node *header, int a, int b) +{ + struct node *t=(struct node*) malloc(sizeof(struct node)); + t->data=b; + while(header!=NULL) + { + if(header->data==a) + break; + header=header->next; + } + if (header!=NULL) + { + t->next=header->next; + header->next=t; + } +} +void insertBefore(struct node *header, int a, int b) +{ + struct node *t=(struct node*) malloc(sizeof(struct node)); + t->data=b; + while(header!=NULL) + { + if(header->next->data==a) + break; + header=header->next; + } + if (header!=NULL) + { + t->next=header->next; + header->next=t; + } +} + +void deleteNode(struct node*header, int d) +{ + while(header!=NULL) + { + if(header->next->data==d) + break; + header=header->next; + } + struct node *t=header->next; + header->next=t->next; + free(t); +} +struct node * reverse(struct node * header) +{ + struct node *t=NULL; + while(header!=NULL) + { + insertFirst(&t,header->data); + header=header->next; + } + return t; +} + +void printList(struct node *header) +{ + while(header!=NULL) + { + printf("%d ",header->data); + header=header->next; + } + printf("\n"); +} + + +void main() +{ + struct node* head=NULL; + insertFirst(&head,10); + printList(head); + insertFirst(&head,5); + printList(head); + insertFirst(&head,1); + printList(head); + printf("inserting 7 after 5 \n"); + insertAfter(head,5,7); + printList(head); + insertAfter(head,10,2); + printList(head); + printf("inserting 4 before 5 \n"); + insertBefore(head,5,4); + printList(head); + printf("Deleting node 5 \n"); + deleteNode(head,5); + printList(head); + printf("the reverse list is \n"); + struct node *t=reverse(head); + printList(t); + +} From f04ba2ba83e07a8193a6fa4a848f60aab662f5c4 Mon Sep 17 00:00:00 2001 From: Aman Khandelwal Date: Wed, 9 Oct 2019 00:59:29 +0530 Subject: [PATCH 6/6] All_Sortings --- All_Sortings/bubble.c | 37 +++++++++++++ All_Sortings/insertionnew.c | 34 ++++++++++++ All_Sortings/merge.c | 104 ++++++++++++++++++++++++++++++++++++ All_Sortings/quick.c | 49 +++++++++++++++++ All_Sortings/selection.c | 38 +++++++++++++ 5 files changed, 262 insertions(+) create mode 100644 All_Sortings/bubble.c create mode 100644 All_Sortings/insertionnew.c create mode 100644 All_Sortings/merge.c create mode 100644 All_Sortings/quick.c create mode 100644 All_Sortings/selection.c diff --git a/All_Sortings/bubble.c b/All_Sortings/bubble.c new file mode 100644 index 0000000..26da569 --- /dev/null +++ b/All_Sortings/bubble.c @@ -0,0 +1,37 @@ +#include +#include + +void bubble(int *a,int n) +{ + int i,j,t; + for(i=0;ia[j+1]) + { + count++; + t=a[j]; + a[j]=a[j+1]; + a[j+1]=t; + } + + if(count==0) + break; + } +} + +void main() +{ + int *a,i,n; + printf("Enter n : "); + scanf("%d",&n); + a=(int *)malloc(n*sizeof(int)); + for(i=0;i +#include + +void insertion(int *a,int n) +{ + int i,j; + for(i=1;i 0 && y < a[j-1]) + { + a[j]=a[j-1]; + j--; + } + a[j]=y; + } +} + +void main() +{ + int *a,i,n; + printf("Enter n : "); + scanf("%d",&n); + a=(int *)malloc(n*sizeof(int)); + for(i=0;i +#include + +// Merges two subarrays of arr[]. +// First subarray is arr[l..m] +// Second subarray is arr[m+1..r] +void merge(int arr[], int l, int m, int r) +{ + int i, j, k; + int n1 = m - l + 1; + int n2 = r - m; + + /* create temp arrays */ + int L[n1], R[n2]; + + /* Copy data to temp arrays L[] and R[] */ + for (i = 0; i < n1; i++) + L[i] = arr[l + i]; + for (j = 0; j < n2; j++) + R[j] = arr[m + 1+ j]; + + /* Merge the temp arrays back into arr[l..r]*/ + i = 0; // Initial index of first subarray + j = 0; // Initial index of second subarray + k = l; // Initial index of merged subarray + while (i < n1 && j < n2) + { + if (L[i] <= R[j]) + { + arr[k] = L[i]; + i++; + } + else + { + arr[k] = R[j]; + j++; + } + k++; + } + + /* Copy the remaining elements of L[], if there + are any */ + while (i < n1) + { + arr[k] = L[i]; + i++; + k++; + } + + /* Copy the remaining elements of R[], if there + are any */ + while (j < n2) + { + arr[k] = R[j]; + j++; + k++; + } +} + +/* l is for left index and r is right index of the +sub-array of arr to be sorted */ +void mergeSort(int arr[], int l, int r) +{ + if (l < r) + { + // Same as (l+r)/2, but avoids overflow for + // large l and h + int m = l+(r-l)/2; + + // Sort first and second halves + mergeSort(arr, l, m); + mergeSort(arr, m+1, r); + + merge(arr, l, m, r); + } +} + +/* UTILITY FUNCTIONS */ +/* Function to print an array */ +void printArray(int A[], int size) +{ + int i; + for (i=0; i < size; i++) + printf("%d ", A[i]); + printf("\n"); +} + +/* Driver program to test above functions */ +int main() +{ + int arr[] = {12, 11, 13, 5, 6, 7}; + int arr_size = sizeof(arr)/sizeof(arr[0]); + + printf("Given array is \n"); + printArray(arr, arr_size); + + mergeSort(arr, 0, arr_size - 1); + + printf("\nSorted array is \n"); + printArray(arr, arr_size); + return 0; +} + diff --git a/All_Sortings/quick.c b/All_Sortings/quick.c new file mode 100644 index 0000000..8e67316 --- /dev/null +++ b/All_Sortings/quick.c @@ -0,0 +1,49 @@ +#include +#include + +void swap(int *a,int x,int y) +{ + int t=a[x]; + a[x]=a[y]; + a[y]=t; +} + +void quick(int *a,int low,int high) +{ + if(low>=high) + return; + + int mid=(low+high)/2; + swap(a,low,mid); + int last=low; + + for(int i=low+1;i +#include + +void selection(int *a,int n) +{ + int i,j; + for(i=0;ia[j]) + { + small=a[j]; + pos=j; + } + + a[pos]=a[i]; + a[i]=small; + } +} + +void main() +{ + int *a,i,n; + printf("Enter n : "); + scanf("%d",&n); + a=(int *)malloc(n*sizeof(int)); + for(i=0;i