From 9acc631e2b7a4d5aae2fee415f666add687c4f23 Mon Sep 17 00:00:00 2001 From: Mayank Date: Tue, 3 Nov 2015 15:46:08 +0530 Subject: [PATCH 001/131] Initial commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..efca67af5 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# Algorithms +A Repository to store implementation of some of the famous Data Structures and Algorithms (mainly in C/C++/Java/Python) for everyone to learn and contribute. From 3a1818dbc9a1497e9acd3709317a061930f02e1b Mon Sep 17 00:00:00 2001 From: Mayank Date: Tue, 3 Nov 2015 15:53:46 +0530 Subject: [PATCH 002/131] Edit Distance completed --- editDistance/CODECHEF_seatsr.cpp | 78 +++++++++++++++++++++++++++++++ editDistance/SPOJ_edist.cpp | 42 +++++++++++++++++ editDistance/a.out | Bin 0 -> 13600 bytes 3 files changed, 120 insertions(+) create mode 100644 editDistance/CODECHEF_seatsr.cpp create mode 100644 editDistance/SPOJ_edist.cpp create mode 100755 editDistance/a.out diff --git a/editDistance/CODECHEF_seatsr.cpp b/editDistance/CODECHEF_seatsr.cpp new file mode 100644 index 000000000..549f90ee4 --- /dev/null +++ b/editDistance/CODECHEF_seatsr.cpp @@ -0,0 +1,78 @@ +// Two 1-d array implementation +#include +using namespace std; +const int inf=0x3fffffff; +#define Min(a,b) (a>test ; + while(test--) + { + cin>>a; + cin>>b; + cin>>z; + cin>>x; + cin>>c; + lena = strlen(a) ; + lenb = strlen(b) ; + if((lena-lenb)*z > c || (lenb-lena)*z > c ) + { + cout<<"-1\n"; + continue ; + } + if( (z == 0) ) + { + cout<<"0\n" ; + continue ; + } + if( (x == 0) ) + { + cout< c) + previous_dp[i] = inf ; + else + previous_dp[i] = i*z ; + } + fr(i,1,lena+1) + { + alpha = Max((i-c),0) ; + if( alpha > 0) + { + current_dp[alpha-1] = inf ; + } + alpha -= 1 ; + temp = Min((i+c+1),(lenb+1)); + fr(j,alpha+1,temp) + { + if(j == 0) + { + current_dp[j] = i*z ; + } + else + { + current_dp[j] = Min(Min(previous_dp[j] + z , current_dp[j-1] + z ) , previous_dp[j-1]+(a[i-1] == b[j-1] ? 0 : x)); + } + } + fr(j,alpha,temp) + { + previous_dp[j] = current_dp[j] ; + } + } + if(current_dp[lenb] > c) + cout<<"-1\n"; + else + cout< +using namespace std; +#define Min(a,b) (a>test ; + while(test--) + { + cin>>a; + cin>>b; + lena = strlen(a) ; + lenb = strlen(b) ; + dp[lena+1][lenb+1]; + fr(i,0,lena+1) + { + fr(j,0,lenb+1) + { + if( i == 0 ) + { + dp[i][j] = j ; + } + else if( j == 0 ) + { + dp[i][j] = i ; + } + else + { + dp[i][j]=Min(Min(dp[i-1][j]+1,dp[i][j-1]+1),dp[i-1][j-1]+(a[i-1]==b[j-1]?0:100)); + } + cout<Pnm3MlAO3{oF|H;EH)I$ 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 Yt>L(Ft7v?dtAA{V(*KNOz&Y#xZwceRJpcdz literal 0 HcmV?d00001 From 06e229ac6edd3f4e26eed41410619fe292ec7d5e Mon Sep 17 00:00:00 2001 From: Mayank Date: Wed, 4 Nov 2015 01:07:31 +0530 Subject: [PATCH 003/131] Binary Indexed Tree added- Part 1 --- binaryIndexedTree/SPOJ_invcnt.cpp | 78 +++++++++++++++++++ binaryIndexedTree/binary_indexed_tree.cpp | 76 ++++++++++++++++++ .../SPOJ_horrible.cpp | 76 ++++++++++++++++++ 3 files changed, 230 insertions(+) create mode 100644 binaryIndexedTree/SPOJ_invcnt.cpp create mode 100644 binaryIndexedTree/binary_indexed_tree.cpp create mode 100644 binaryIndexedTree/range_query_range_update/SPOJ_horrible.cpp diff --git a/binaryIndexedTree/SPOJ_invcnt.cpp b/binaryIndexedTree/SPOJ_invcnt.cpp new file mode 100644 index 000000000..d15385bec --- /dev/null +++ b/binaryIndexedTree/SPOJ_invcnt.cpp @@ -0,0 +1,78 @@ +// Solution to ...https://www.hackerrank.com/challenges/insertion-sort +#include +#include +#include +#include +#include +using namespace std; +#define lli long long int +#define Min(a,b) (a s ; i--) + +//lli sum( lli index) : returns of arr[index]+arr[index-1]..arr[0] + +//void update( lli n , lli index , lli value ) : adds v to arr[index] + + +lli T[100002]={0} ; +lli sum(lli index){ + lli sum = 0; + index+=1; + while(index > 0){ + sum += T[index] ; + index = index - (index&(-1*index)); + } + return sum ; +} +void update(lli n , lli index , lli value ){ + index++; + while(index <= n){ + T[index] += value ; + index = index + (index&(-1*index)); + } +} +void binary_indexed_tree(lli *a, lli n){ + lli i ; + for(i = 1 ; i <= n+1 ; i++) + { + T[i] = 0 ; + } + //To be Uncommented as per the need + /*for(i = 0 ; i < n ; i++) + { + update(n,i,a[i]) ; + }*/ +} +int main() { + lli test,n,i,j,inversions,position,option,ans,p,q,v; + lli arr[100002]; + lli brr[100002]; + cin>>test; + while(test--) + { + inversions = 0; + cin>>n; + fr(i,0,n) + { + cin>>arr[i]; + brr[i] = arr[i] ; + } + sort(brr,brr+n); + fr(i,0,n) + { + position = ( lli )(lower_bound(brr,brr+n,arr[i])-brr); + arr[i] = position+1 ; + } + binary_indexed_tree(arr,n); + ufr(i,n-1,-1) + { + inversions += sum(arr[i]-1); + update(n,arr[i],1); + } + cout< +#include +#include +#include +#include +using namespace std; +#define lli long long int +#define Min(a,b) (a 0){ + sum += T[index] ; + index = index - (index&(-1*index)); + } + return sum ; +} +void update(lli n , lli index , lli value ){ + index++; + while(index <= n){ + T[index] += value ; + index = index + (index&(-1*index)); + } +} +lli * binary_indexed_tree(lli *a, lli n){ + lli i ; + for(i = 1 ; i <= n+1 ; i++) + { + T[i] = 0 ; + } + for(i = 0 ; i < n ; i++) + { + update(n,i,a[i]) ; + } + return T ; +} +int main() { + lli test,n,i,j,query,option,ans,p,q,v; + lli arr[200002]; + cin>>test; + while(test--) + { + cin>>n; + cin>>query; + fr(i,0,n) + { + arr[i] = 0; + } + binary_indexed_tree(arr,n); + while(query--) + { + cin>>option>>p>>q ; + p--; + q--; + if(option == 0) + { + cin>>v; + update(n,p,v); + if(q != n-1) + update(n,q+1,-1*v); + } + else + { + if(p == 0) + ans = sum(q); + else + ans = sum(q)-sum(p-1) ; + cout< +#include +#include +#include +#include +using namespace std; +#define lli long long int +#define Min(a,b) (a 0){ + sum += T[index] ; + index = index - (index&(-1*index)); + } + return sum ; +} +void update(lli T[] , lli n , lli index , lli value ){ + index++; + while(index <= n){ + T[index] += value ; + index = index + (index&(-1*index)); + } +} +lli * binary_indexed_tree(lli n){ + lli i ; + lli* T =(lli *) malloc(sizeof(lli)*200002) ; + for(i = 1 ; i <= n+1 ; i++) + { + T[i] = 0 ; + } + // for(i = 0 ; i < n ; i++) + // { + // update(T,n,i,a[i]) ; + // } + return T ; +} +int main() { + lli test,n,i,j,query,option,ans,p,q,v; + lli arr[200002]; + cin>>test; + while(test--) + { + cin>>n; + cin>>query; + fr(i,0,n) + { + arr[i] = 0; + } + lli* T1 = binary_indexed_tree(n); + lli* T2 = binary_indexed_tree(n); + while(query--) + { + cin>>option>>p>>q ; + p--; + q--; + if(option == 0) + { + cin>>v; + update(T1,n,p,v); + update(T1,n,q+1,-v); + update(T2,n,p,v*(p-1)); + update(T2,n,q+1,-v*q); + } + else + { + ans = sum(T1,q)*q-sum(T2,q)-sum(T1,p-1)*(p-1)+sum(T2,p-1) ; + cout< Date: Wed, 4 Nov 2015 02:09:08 +0530 Subject: [PATCH 004/131] Reference File Added Resources for detailed Learning. --- binaryIndexedTree/Reference.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 binaryIndexedTree/Reference.txt diff --git a/binaryIndexedTree/Reference.txt b/binaryIndexedTree/Reference.txt new file mode 100644 index 000000000..e7a6004fd --- /dev/null +++ b/binaryIndexedTree/Reference.txt @@ -0,0 +1,3 @@ +Here are some websites/blogs which inspired and motivated this concept in me. +https://kartikkukreja.wordpress.com/2013/12/02/range-updates-with-bit-fenwick-tree/ +http://zobayer.blogspot.in/2013/11/various-usage-of-bit.html From 40b4084c7158da2777f07d06d116f431c28a81c8 Mon Sep 17 00:00:00 2001 From: Mayank Date: Wed, 2 Dec 2015 01:24:08 +0530 Subject: [PATCH 005/131] Shortest Path Algorithms added --- Shortest_Path/Floyd-Warshall/a.out | Bin 0 -> 13584 bytes .../Floyd-Warshall/floyd_warshall.cpp | 57 +++++ Shortest_Path/dijsktra/a.out | Bin 0 -> 33192 bytes .../dijsktra/dijsktra_implementation.cpp | 230 ++++++++++++++++++ binaryIndexedTree/SPOJ_ctrick.cpp | 116 +++++++++ 5 files changed, 403 insertions(+) create mode 100755 Shortest_Path/Floyd-Warshall/a.out create mode 100644 Shortest_Path/Floyd-Warshall/floyd_warshall.cpp create mode 100755 Shortest_Path/dijsktra/a.out create mode 100644 Shortest_Path/dijsktra/dijsktra_implementation.cpp create mode 100644 binaryIndexedTree/SPOJ_ctrick.cpp diff --git a/Shortest_Path/Floyd-Warshall/a.out b/Shortest_Path/Floyd-Warshall/a.out new file mode 100755 index 0000000000000000000000000000000000000000..162a7202c3524a91bb5bbb22b6a15d741f901308 GIT binary patch literal 13584 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 BcU1rY literal 0 HcmV?d00001 diff --git a/Shortest_Path/Floyd-Warshall/floyd_warshall.cpp b/Shortest_Path/Floyd-Warshall/floyd_warshall.cpp new file mode 100644 index 000000000..24e6cb3a2 --- /dev/null +++ b/Shortest_Path/Floyd-Warshall/floyd_warshall.cpp @@ -0,0 +1,57 @@ +#include +using namespace std; +#define lli long long int +#define infinite numeric_limits::max() +#define Min(a,b) ((a)<(b)?(a):(b)) +#define Max(a,b) ((a)>(b)?(a):(b)) +#define fr(i,j,s) for(i = j ; i < s ; i++) +#define ifr(i,j,s) for(i = j ; i >= s , i--) +void floydWasrshall(lli G[][400],int V) +{ + int u , v , w; + fr(u,0,V) + { + fr(v,0,V) + { + fr(w,0,V) + { + if(G[v][u]+G[u][w] < G[v][w]) + G[v][w] = G[v][u]+G[u][w] ; + } + } + } +} +int main(void) +{ + int test,v,e,a,b,i,j; + lli wt; + cin>>v>>e; + int ed = 0; + lli graph[400][400]; + int temp = e ; + fr(i,0,v) + { + fr(j,0,v) + { + graph[i][j] = infinite ; + if(i==j) + graph[i][j] = 0; + } + } + while(e--) + { + cin>>a>>b>>wt; + graph[a-1][b-1] = wt; + } + lli q ; + cin>>q; + floydWasrshall(graph,v); + while(q--) + { + cin>>a>>b; + if(graph[a-1][b-1] == infinite ) + graph[a-1][b-1] = -1 ; + cout<hFD? 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 G{r(S(;oz(Q literal 0 HcmV?d00001 diff --git a/Shortest_Path/dijsktra/dijsktra_implementation.cpp b/Shortest_Path/dijsktra/dijsktra_implementation.cpp new file mode 100644 index 000000000..d2d0025f5 --- /dev/null +++ b/Shortest_Path/dijsktra/dijsktra_implementation.cpp @@ -0,0 +1,230 @@ +#include +using namespace std; +#define lli long long int +#define infinite 0xffff +#define Min(a,b) ((a)<(b)?(a):(b)) +#define Max(a,b) ((a)>(b)?(a):(b)) +#define fr(i,j,s) for(i = j ; i < s ; i++) +#define ifr(i,j,s) for(i = j ; i >= s , i--) +struct adjListNode +{ + int dest; + int wt; + struct adjListNode *next; +}; +struct adjList +{ + struct adjListNode *head; +}; +struct Graph +{ + int V ; + struct adjList *array; +}; +struct adjListNode * newAdjNode(int dest, int wt) +{ + struct adjListNode *newNode = (struct adjListNode* )malloc(sizeof(struct adjListNode)); + newNode->dest = dest; + newNode->wt = wt; + newNode->next = NULL ; + return newNode; +} +struct Graph* createGraph(int V,int E) +{ + int i ; + struct Graph* G = (struct Graph *)malloc(sizeof(struct Graph)); + G->V = V ; + G->array = (struct adjList*)malloc(E*sizeof(struct adjList)); + fr(i,0,V) + { + G->array[i].head = NULL ; + } + return G ; +} +void addEdge(struct Graph *G,int src, int dest, int wt) +{ + struct adjListNode*temp=newAdjNode(dest,wt); + temp->next=G->array[src].head; + G->array[src].head=temp; + + temp=newAdjNode(src,wt); + temp->next=G->array[dest].head; + G->array[dest].head=temp; +} +struct MinHeapNode +{ + int v; + int dist; +}; +struct MinHeap +{ + int size; + int capacity; + int *pos; + struct MinHeapNode **array; +}; +struct MinHeapNode* newMinHeapNode(int v, int dist) +{ + struct MinHeapNode* minHeapNode = + (struct MinHeapNode*) malloc(sizeof(struct MinHeapNode)); + minHeapNode->v = v; + minHeapNode->dist = dist; + return minHeapNode; +} +struct MinHeap* createMinHeap(int capacity) +{ + struct MinHeap* minHeap = + (struct MinHeap*) malloc(sizeof(struct MinHeap)); + minHeap->pos = (int *)malloc(capacity * sizeof(int)); + minHeap->size = 0; + minHeap->capacity = capacity; + minHeap->array = + (struct MinHeapNode**) malloc(capacity * sizeof(struct MinHeapNode*)); + return minHeap; +} +void swapMinHeapNode(struct MinHeapNode** a, struct MinHeapNode** b) +{ + struct MinHeapNode* t = *a; + *a = *b; + *b = t; +} +void minHeapify(struct MinHeap* minHeap, int idx) +{ + int smallest, left, right; + smallest = idx; + left = 2 * idx + 1; + right = 2 * idx + 2; + + if (left < minHeap->size && + minHeap->array[left]->dist < minHeap->array[smallest]->dist ) + smallest = left; + + if (right < minHeap->size && + minHeap->array[right]->dist < minHeap->array[smallest]->dist ) + smallest = right; + + if (smallest != idx) + { + MinHeapNode *smallestNode = minHeap->array[smallest]; + MinHeapNode *idxNode = minHeap->array[idx]; + + minHeap->pos[smallestNode->v] = idx; + minHeap->pos[idxNode->v] = smallest; + + swapMinHeapNode(&minHeap->array[smallest], &minHeap->array[idx]); + + minHeapify(minHeap, smallest); + } +} + +int isEmpty(struct MinHeap* minHeap) +{ + return minHeap->size == 0; +} + +struct MinHeapNode* extractMin(struct MinHeap* minHeap) +{ + if (isEmpty(minHeap)) + return NULL; + + struct MinHeapNode* root = minHeap->array[0]; + + struct MinHeapNode* lastNode = minHeap->array[minHeap->size - 1]; + minHeap->array[0] = lastNode; + + minHeap->pos[root->v] = minHeap->size-1; + minHeap->pos[lastNode->v] = 0; + + --minHeap->size; + minHeapify(minHeap, 0); + + return root; +} + +void decreaseKey(struct MinHeap* minHeap, int v, int dist) +{ + int i = minHeap->pos[v]; + + minHeap->array[i]->dist = dist; + + while (i && minHeap->array[i]->dist < minHeap->array[(i - 1) / 2]->dist) + { + minHeap->pos[minHeap->array[i]->v] = (i-1)/2; + minHeap->pos[minHeap->array[(i-1)/2]->v] = i; + swapMinHeapNode(&minHeap->array[i], &minHeap->array[(i - 1) / 2]); + i = (i - 1) / 2; + } +} + +bool isInMinHeap(struct MinHeap *minHeap, int v) +{ + if (minHeap->pos[v] < minHeap->size) + return true; + return false; +} +void printarr(int dist[], int v , int src) +{ + int i ; + fr(i,0,v) + { + if(i==src) + continue; + if(dist[i] == infinite) + dist[i] = -1 ; + cout<V; + int dist[V]; + struct MinHeap * minHeap = createMinHeap(V); + fr(i,0,V) + { + dist[i] = infinite ; + minHeap->array[i] = newMinHeapNode(i,dist[i]); + minHeap->pos[i] = i ; + } + minHeap->array[src] = newMinHeapNode(src,dist[src]) ; + minHeap->pos[src] = src ; + dist[src] = 0 ; + decreaseKey(minHeap,src,dist[src]); + minHeap->size = V ; + while(!isEmpty(minHeap)) + { + struct MinHeapNode* minHeapNode = extractMin(minHeap); + int u = minHeapNode->v; + struct adjListNode* pCrawl = G->array[u].head; + while (pCrawl != NULL) + { + int v = pCrawl->dest; + if (isInMinHeap(minHeap, v) && dist[u] != INT_MAX && pCrawl->wt + dist[u] < dist[v]) + { + dist[v] = dist[u] + pCrawl->wt; + decreaseKey(minHeap, v, dist[v]); + } + pCrawl = pCrawl->next; + } + } + printarr(dist,V,src); +} +int main(void) +{ + int test,v,e,a,b,wt; + cin>>test; + while(test--) + { + cin>>v>>e; + struct Graph* G = createGraph(v,e); + while(e--) + { + cin>>a>>b>>wt; + addEdge(G,a-1,b-1,wt); + } + cin>>a; + dijsktra(G,a-1); + } + return 0; +} \ No newline at end of file diff --git a/binaryIndexedTree/SPOJ_ctrick.cpp b/binaryIndexedTree/SPOJ_ctrick.cpp new file mode 100644 index 000000000..54660c92a --- /dev/null +++ b/binaryIndexedTree/SPOJ_ctrick.cpp @@ -0,0 +1,116 @@ +#include +#include +#include +#include +#include +using namespace std; +#define lli long long int +#define Min(a,b) (a 0){ + sum += T[index] ; + index = index - (index&(-1*index)); + } + return sum ; +} +void update(lli T[] , lli n , lli index , lli value ){ + index++; + while(index <= n){ + T[index] += value ; + index = index + (index&(-1*index)); + } +} +lli * binary_indexed_tree(lli n){ + lli i ; + lli* T =(lli *) malloc(sizeof(lli)*200002) ; + for(i = 1 ; i <= n+1 ; i++) + { + T[i] = 0 ; + } + for(i = 0 ; i < n ; i++) + { + update(T,n,i,1) ; + } + return T ; +} +void renew(lli* T,lli n) +{ + lli i ; + for(i = 1 ; i <= n+1 ; i++) + { + T[i] = 0 ; + } + for(i = 0 ; i < n ; i++) + { + update(T,n,i,1) ; + } +} + +lli modified_binary_search(lli * T, lli val, lli start , lli end) +{ + lli mid = (start+end)/2 ; + lli mid_sum = sum(T,mid) ; + if((mid_sum == val)&&(hash_array_mod[mid+1] == 0)) + return mid; + else if( (mid_sum > val) || ((mid_sum == val)&&(hash_array_mod[mid+1] != 0)) ) + { + return modified_binary_search(T,val,start,mid-1); + } + else + { + return modified_binary_search(T,val,mid+1,end); + } +} +int main() { + lli test,n,i,j,ans,current_pos,next_pos_sum,next_pos,count,free_space_total; + lli a[200002]; + cin>>test; + lli* T = binary_indexed_tree(n); + while(test--) + { + cin>>n; + //cin>>query; + if(n == 1) + { + cout<<"1"< Date: Wed, 2 Dec 2015 01:33:02 +0530 Subject: [PATCH 006/131] Adding Minimum Spanning Tree Algos --- Minimum_Spanning_Tree/KruskalMST.cpp | 107 +++++++++++++ Minimum_Spanning_Tree/Prims.cpp | 225 +++++++++++++++++++++++++++ Minimum_Spanning_Tree/a.out | Bin 0 -> 53424 bytes 3 files changed, 332 insertions(+) create mode 100644 Minimum_Spanning_Tree/KruskalMST.cpp create mode 100644 Minimum_Spanning_Tree/Prims.cpp create mode 100755 Minimum_Spanning_Tree/a.out diff --git a/Minimum_Spanning_Tree/KruskalMST.cpp b/Minimum_Spanning_Tree/KruskalMST.cpp new file mode 100644 index 000000000..222e852dd --- /dev/null +++ b/Minimum_Spanning_Tree/KruskalMST.cpp @@ -0,0 +1,107 @@ +#include +using namespace std; +#define lli long long int +#define infinite numeric_limits::max() +#define Min(a,b) ((a)<(b)?(a):(b)) +#define Max(a,b) ((a)>(b)?(a):(b)) +#define fr(i,j,s) for(i = j ; i < s ; i++) +#define ifr(i,j,s) for(i = j ; i >= s , i--) +struct edge +{ + lli wt; + int src; + int dest; +}; +struct Graph +{ + int V; + int E; + struct edge* array; +}; +struct sub +{ + int parent; + int rank; +}; +bool comp(struct edge &a, struct edge &b) +{ + return ((a.wt)<(b.wt)); +} +int find(struct sub subset[], int i) +{ + if(subset[i].parent != i) + { + subset[i].parent = find(subset,subset[i].parent); + } + return subset[i].parent ; +} +void Union(struct sub subset[] , int x, int y) +{ + int xfather = find(subset,x); + int yfather = find(subset,y); + if(subset[xfather].rankV = V ; + G->E = E ; + G->array = (struct edge*)malloc(E*sizeof(struct edge)); + return G ; +} +void KruskalMST(struct Graph *G) +{ + int i ; + int V = G->V ; + int E = G->E ; + lli sum = 0 ; + struct sub subset[G->V]; + fr(i,0,V) + { + subset[i].parent = i ; + subset[i].rank = 0 ; + } + sort(G->array, (G->array)+G->E,comp); + fr(i,0,E) + { + int x = find(subset,G->array[i].src); + int y = find(subset,G->array[i].dest); + if(x==y) + continue; + else + { + Union(subset,G->array[i].src,G->array[i].dest); + sum+=G->array[i].wt; + } + } + cout<>v>>e; + struct Graph* G = createGraph(v,e); + int ed = 0; + int temp = e ; + while(e--) + { + cin>>a>>b>>wt; + G->array[ed].src=a-1; + G->array[ed].dest=b-1; + G->array[ed].wt=wt; + ed++; + } + cin>>a; + KruskalMST(G); + return 0; +} \ No newline at end of file diff --git a/Minimum_Spanning_Tree/Prims.cpp b/Minimum_Spanning_Tree/Prims.cpp new file mode 100644 index 000000000..242040193 --- /dev/null +++ b/Minimum_Spanning_Tree/Prims.cpp @@ -0,0 +1,225 @@ +#include +using namespace std; +#define lli long long int +#define infinite numeric_limits::max() +#define Min(a,b) ((a)<(b)?(a):(b)) +#define Max(a,b) ((a)>(b)?(a):(b)) +#define fr(i,j,s) for(i = j ; i < s ; i++) +#define ifr(i,j,s) for(i = j ; i >= s , i--) +struct adjListNode +{ + int dest; + int wt; + struct adjListNode *next; +}; +struct adjList +{ + struct adjListNode *head; +}; +struct Graph +{ + int V ; + struct adjList *array; +}; +struct adjListNode * newAdjNode(int dest, int wt) +{ + struct adjListNode *newNode = (struct adjListNode* )malloc(sizeof(struct adjListNode)); + newNode->dest = dest; + newNode->wt = wt; + newNode->next = NULL ; + return newNode; +} +struct Graph* createGraph(int V,int E) +{ + int i ; + struct Graph* G = (struct Graph *)malloc(sizeof(struct Graph)); + G->V = V ; + G->array = (struct adjList*)malloc(E*sizeof(struct adjList)); + fr(i,0,V) + { + G->array[i].head = NULL ; + } + return G ; +} +void addEdge(struct Graph *G,int src, int dest, int wt) +{ + struct adjListNode*temp=newAdjNode(dest,wt); + temp->next=G->array[src].head; + G->array[src].head=temp; + + temp=newAdjNode(src,wt); + temp->next=G->array[dest].head; + G->array[dest].head=temp; +} +struct MinHeapNode +{ + int v; + lli dist; +}; +struct MinHeap +{ + int size; + int capacity; + int *pos; + struct MinHeapNode **array; +}; +struct MinHeapNode* newMinHeapNode(int v, lli dist) +{ + struct MinHeapNode* minHeapNode = + (struct MinHeapNode*) malloc(sizeof(struct MinHeapNode)); + minHeapNode->v = v; + minHeapNode->dist = dist; + return minHeapNode; +} +struct MinHeap* createMinHeap(int capacity) +{ + struct MinHeap* minHeap = + (struct MinHeap*) malloc(sizeof(struct MinHeap)); + minHeap->pos = (int *)malloc(capacity * sizeof(int)); + minHeap->size = 0; + minHeap->capacity = capacity; + minHeap->array = + (struct MinHeapNode**) malloc(capacity * sizeof(struct MinHeapNode*)); + return minHeap; +} +void swapMinHeapNode(struct MinHeapNode** a, struct MinHeapNode** b) +{ + struct MinHeapNode* t = *a; + *a = *b; + *b = t; +} +void minHeapify(struct MinHeap* minHeap, int idx) +{ + int smallest, left, right; + smallest = idx; + left = 2 * idx + 1; + right = 2 * idx + 2; + + if (left < minHeap->size && + minHeap->array[left]->dist < minHeap->array[smallest]->dist ) + smallest = left; + + if (right < minHeap->size && + minHeap->array[right]->dist < minHeap->array[smallest]->dist ) + smallest = right; + + if (smallest != idx) + { + MinHeapNode *smallestNode = minHeap->array[smallest]; + MinHeapNode *idxNode = minHeap->array[idx]; + + minHeap->pos[smallestNode->v] = idx; + minHeap->pos[idxNode->v] = smallest; + + swapMinHeapNode(&minHeap->array[smallest], &minHeap->array[idx]); + + minHeapify(minHeap, smallest); + } +} + +int isEmpty(struct MinHeap* minHeap) +{ + return minHeap->size == 0; +} + +struct MinHeapNode* extractMin(struct MinHeap* minHeap) +{ + if (isEmpty(minHeap)) + return NULL; + + struct MinHeapNode* root = minHeap->array[0]; + + struct MinHeapNode* lastNode = minHeap->array[minHeap->size - 1]; + minHeap->array[0] = lastNode; + + minHeap->pos[root->v] = minHeap->size-1; + minHeap->pos[lastNode->v] = 0; + + --minHeap->size; + minHeapify(minHeap, 0); + + return root; +} + +void decreaseKey(struct MinHeap* minHeap, int v, lli dist) +{ + int i = minHeap->pos[v]; + + minHeap->array[i]->dist = dist; + + while (i && minHeap->array[i]->dist < minHeap->array[(i - 1) / 2]->dist) + { + minHeap->pos[minHeap->array[i]->v] = (i-1)/2; + minHeap->pos[minHeap->array[(i-1)/2]->v] = i; + swapMinHeapNode(&minHeap->array[i], &minHeap->array[(i - 1) / 2]); + i = (i - 1) / 2; + } +} + +bool isInMinHeap(struct MinHeap *minHeap, int v) +{ + if (minHeap->pos[v] < minHeap->size) + return true; + return false; +} +void PrimMST(struct Graph*G,int src) +{ + lli i,j; + int V = G->V; + lli dist[V],parent[V],sto[V]; + struct MinHeap * minHeap = createMinHeap(V); + fr(i,0,V) + { + if(i==src) + continue; + parent[i] = -1 ; + sto[i] = -1 ; + dist[i] = infinite ; + minHeap->array[i] = newMinHeapNode(i,dist[i]); + minHeap->pos[i] = i ; + } + dist[src] = 0 ; + minHeap->array[src] = newMinHeapNode(src,dist[src]) ; + minHeap->pos[src] = src ; + minHeap->size = V ; + lli sum=0; + while(!isEmpty(minHeap)) + { + struct MinHeapNode* minHeapNode = extractMin(minHeap); + int u = minHeapNode->v; + struct adjListNode* pCrawl = G->array[u].head; + while (pCrawl != NULL) + { + int v = pCrawl->dest; + if (isInMinHeap(minHeap, v) && (pCrawl->wt < dist[v])) + { + parent[v] = u ; + if(dist[v] != infinite) + sum -= (dist[v]-pCrawl->wt) ; + else + sum+=pCrawl->wt; + dist[v] =pCrawl->wt; + decreaseKey(minHeap, v, dist[v]); + } + pCrawl = pCrawl->next; + } + } + fr(i,0,V) + cout<>v>>e; + struct Graph* G = createGraph(v,e); + while(e--) + { + cin>>a>>b>>wt; + addEdge(G,a-1,b-1,wt); + } + cin>>a; + PrimMST(G,0); + return 0; +} \ No newline at end of file diff --git a/Minimum_Spanning_Tree/a.out b/Minimum_Spanning_Tree/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b763fff5e3ca753728b7e0081d687a7f9370d3f3 GIT binary patch literal 53424 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 Date: Wed, 30 Dec 2015 21:28:01 +0530 Subject: [PATCH 007/131] Longest Common Subsequence and Longest Increasing Subsequence Problems added --- Longest_Common_Subsequence/lcs.cpp | 73 ++++++++++++++++++ Longest_Increasing_Subsequence/a.out | Bin 0 -> 13600 bytes .../lis_n_log_n.cpp | 67 ++++++++++++++++ .../lis_n_squared_sol.cpp | 73 ++++++++++++++++++ 4 files changed, 213 insertions(+) create mode 100644 Longest_Common_Subsequence/lcs.cpp create mode 100755 Longest_Increasing_Subsequence/a.out create mode 100644 Longest_Increasing_Subsequence/lis_n_log_n.cpp create mode 100644 Longest_Increasing_Subsequence/lis_n_squared_sol.cpp diff --git a/Longest_Common_Subsequence/lcs.cpp b/Longest_Common_Subsequence/lcs.cpp new file mode 100644 index 000000000..e931be526 --- /dev/null +++ b/Longest_Common_Subsequence/lcs.cpp @@ -0,0 +1,73 @@ + +#include +using namespace std; +#define lli long long int +#define infinite 0xffff +#define Min(a,b) (((a)<(b))?(a):(b)) +#define Max(a,b) (((a)>(b))?(a):(b)) +#define fr(i,j,s) for(i = j ; i < s ; i++) +#define ifr(i,j,s) for(i = j ; i >= s , i--) +void lcs(char * a, char *b) +{ + lli lena,lenb,i,j,count; + lena=strlen(a); + lenb=strlen(b); + char record[lena+1][lenb+1]; + //Code to generate the map + fr(i,0,lena+1) + { + fr(j,0,lenb+1) + { + if(i==0 || j==0) + { + record[i][j]=0; + } + else if(a[i-1]==b[j-1]) + { + record[i][j]=record[i-1][j-1]+1; + } + else + { + record[i][j] = Max(record[i-1][j],record[i][j-1]); + } + } + } + //Code to find the subsequence + i = lena; + j = lenb; + char sub[record[lena][lenb]]; + lli index = record[i][j]-1; + while( i > 0 && j > 0 ) + { + if(a[i-1]==b[j-1]) + { + sub[index]=a[i-1]; + i--; + j--; + index--; + } + else if(Max(record[i-1][j],record[i][j-1]) == record[i-1][j]) + { + i--; + } + else + { + j--; + } + } + fr(i,0,record[lena][lenb]) + { + cout<>str1; + cin>>str2; + lcs(str1,str2); + return 0; +} \ No newline at end of file diff --git a/Longest_Increasing_Subsequence/a.out b/Longest_Increasing_Subsequence/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f7b1a9728c0681ce1f6577a88fd744877929a8b GIT binary patch literal 13600 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 literal 0 HcmV?d00001 diff --git a/Longest_Increasing_Subsequence/lis_n_log_n.cpp b/Longest_Increasing_Subsequence/lis_n_log_n.cpp new file mode 100644 index 000000000..931ddcb1a --- /dev/null +++ b/Longest_Increasing_Subsequence/lis_n_log_n.cpp @@ -0,0 +1,67 @@ +#include +using namespace std; +#define lli long long int +#define infinite 0xffff +#define Min(a,b) (((a)<(b))?(a):(b)) +#define Max(a,b) (((a)>(b))?(a):(b)) +#define fr(i,j,s) for(i = j ; i < s ; i++) +#define ifr(i,j,s) for(i = j ; i >= s ; i--) +lli binary_LookUp(lli * record ,lli a , lli len , lli val) +{ + while(len-a > 1) + { + lli m = a + (len-a)/2; + if(record[m]>=val) + { + len = m ; + } + else + { + a = m ; + } + } + return len ; +} +void lis(lli * a, lli n) +{ + lli i,j,count,index; + lli record[n]; + //Code to generate the map + record[0]=a[0]; + lli len = 1 ; + fr(i,1,n) + { + if(a[i] record[len-1]) + { + record[len] = a[i]; + len++; + } + else + { + index=binary_LookUp(record,-1,len-1,a[i]); + record[index] = a[i]; + } + } + cout<>n; + lli a[n]; + fr(i,0,n) + { + cin>>a[i]; + } + lis(a,n); + return 0; +} \ No newline at end of file diff --git a/Longest_Increasing_Subsequence/lis_n_squared_sol.cpp b/Longest_Increasing_Subsequence/lis_n_squared_sol.cpp new file mode 100644 index 000000000..471a6aa33 --- /dev/null +++ b/Longest_Increasing_Subsequence/lis_n_squared_sol.cpp @@ -0,0 +1,73 @@ +#include +using namespace std; +#define lli long long int +#define infinite 0xffff +#define Min(a,b) (((a)<(b))?(a):(b)) +#define Max(a,b) (((a)>(b))?(a):(b)) +#define fr(i,j,s) for(i = j ; i < s ; i++) +#define ifr(i,j,s) for(i = j ; i >= s ; i--) +void lis(lli * a, lli n) +{ + lli i,j,count; + lli record[n]; + //Code to generate the map + fr(i,0,n) + { + record[i] = 0 ; + } + fr(i,0,n) + { + fr(j,0,i) + { + if( (a[i]>a[j]) && (record[i]<(record[j]+1)) ) + { + record[i]=record[j]+1; + } + } + } + lli max = 0; + lli index = 0 ; + fr(i,0,n) + { + //cout<>n; + lli a[n]; + fr(i,0,n) + { + cin>>a[i]; + } + lis(a,n); + return 0; +} \ No newline at end of file From 05da11d2dd58d3e454215f9b3ba80196840523b3 Mon Sep 17 00:00:00 2001 From: The Gitter Badger Date: Wed, 18 May 2016 17:08:16 +0000 Subject: [PATCH 008/131] Add Gitter badge --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index efca67af5..b9c91e9f7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # Algorithms + +[![Join the chat at https://gitter.im/codeIIEST/Algorithms](https://badges.gitter.im/codeIIEST/Algorithms.svg)](https://gitter.im/codeIIEST/Algorithms?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) A Repository to store implementation of some of the famous Data Structures and Algorithms (mainly in C/C++/Java/Python) for everyone to learn and contribute. From 7d3e348f86bed6fec9bdc388fa0a9185c30378b3 Mon Sep 17 00:00:00 2001 From: Binayak Ghosh Date: Wed, 18 May 2016 22:44:37 +0530 Subject: [PATCH 009/131] Change the location of gitter chat badge --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b9c91e9f7..ea36f3961 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ # Algorithms +A Repository to store implementation of some of the famous Data Structures and Algorithms (mainly in C/C++/Java/Python) for everyone to learn and contribute. + +
[![Join the chat at https://gitter.im/codeIIEST/Algorithms](https://badges.gitter.im/codeIIEST/Algorithms.svg)](https://gitter.im/codeIIEST/Algorithms?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -A Repository to store implementation of some of the famous Data Structures and Algorithms (mainly in C/C++/Java/Python) for everyone to learn and contribute. From 9af37b002a15350ee9e0f149c9ff08b3027ffd3e Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Mon, 24 Oct 2016 22:40:42 +0530 Subject: [PATCH 010/131] Create READMEDijkstra.md Added a wiki for Dijkstra's Algorithm --- Shortest_Path/dijsktra/READMEDijkstra.md | 62 ++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Shortest_Path/dijsktra/READMEDijkstra.md diff --git a/Shortest_Path/dijsktra/READMEDijkstra.md b/Shortest_Path/dijsktra/READMEDijkstra.md new file mode 100644 index 000000000..13bc946ff --- /dev/null +++ b/Shortest_Path/dijsktra/READMEDijkstra.md @@ -0,0 +1,62 @@ +## Dijkstra's Algorithm +--------------------------------- +--------------------------------- +![](http://cacm.acm.org/system/assets/0000/3432/072010_CACMpg41_An-Interview.large.jpg?1476779421&1279552189) + +Edsger W.Dijkstra + +------------------------------------ +Dijkstra thought about the shortest path problem when working at the Mathematical Center in Amsterdam in 1956 as a programmer to demonstrate capabilities of a new computer called ARMAC. His objective was to choose both a problem as well as an answer (that would be produced by computer) that non-computing people could understand. He designed the shortest path algorithm and later implemented it for ARMAC for a slightly simplified transportation map of 64 cities in the Netherlands (64, so that 6 bits would be sufficient to encode the city number). + A year later, he came across another problem from hardware engineers working on the institute's next computer: minimize the amount of wire needed to connect the pins on the back panel of the machine. As a solution, he re-discovered the algorithm known as Prim's minimal spanning tree algorithm (known earlier to Jarník, and also rediscovered by Prim). + Dijkstra published the algorithm in 1959, two years after Prim and 29 years after Jarník. + + + **Algorithm** + + Let the node at which we are starting be called the initial node. Let the distance of node Y be the distance from the initial node to Y. Dijkstra's algorithm will assign some initial distance values and will try to improve them step by step. + +Assign to every node a tentative distance value: set it to zero for our initial node and to infinity for all other nodes. +Set the initial node as current. Mark all other nodes unvisited. Create a set of all the unvisited nodes called the unvisited set. +For the current node, consider all of its unvisited neighbors and calculate their tentative distances. Compare the newly calculated tentative distance to the current assigned value and assign the smaller one. For example, if the current node A is marked with a distance of 6, and the edge connecting it with a neighbor B has length 2, then the distance to B (through A) will be 6 + 2 = 8. If B was previously marked with a distance greater than 8 then change it to 8. Otherwise, keep the current value. +When we are done considering all of the neighbors of the current node, mark the current node as visited and remove it from the unvisited set. A visited node will never be checked again. +If the destination node has been marked visited (when planning a route between two specific nodes) or if the smallest tentative distance among the nodes in the unvisited set is infinity (when planning a complete traversal; occurs when there is no connection between the initial node and remaining unvisited nodes), then stop. The algorithm has finished. +Otherwise, select the unvisited node that is marked with the smallest tentative distance, set it as the new "current node", and go back to step 3. + +![](https://upload.wikimedia.org/wikipedia/commons/5/57/Dijkstra_Animation.gif) + +**A simple gif to demonstrate the algo** + + +--------------------------------------------------- + +##Related Problems +The functionality of Dijkstra's original algorithm can be extended with a variety of modifications. For example, sometimes it is desirable to present solutions which are less than mathematically optimal. To obtain a ranked list of less-than-optimal solutions, the optimal solution is first calculated. A single edge appearing in the optimal solution is removed from the graph, and the optimum solution to this new graph is calculated. Each edge of the original solution is suppressed in turn and a new shortest-path calculated. The secondary solutions are then ranked and presented after the first optimal solution. + +Dijkstra's algorithm is usually the working principle behind link-state routing protocols, OSPF and IS-IS being the most common ones. + +Unlike Dijkstra's algorithm, the Bellman–Ford algorithm can be used on graphs with negative edge weights, as long as the graph contains no negative cycle reachable from the source vertex s. The presence of such cycles means there is no shortest path, since the total weight becomes lower each time the cycle is traversed. It is possible to adapt Dijkstra's algorithm to handle negative weight edges by combining it with the Bellman-Ford algorithm (to remove negative edges and detect negative cycles), such an algorithm is called Johnson's algorithm. + +The A* algorithm is a generalization of Dijkstra's algorithm that cuts down on the size of the subgraph that must be explored, if additional information is available that provides a lower bound on the "distance" to the target. This approach can be viewed from the perspective of linear programming: there is a natural linear program for computing shortest paths, and solutions to its dual linear program are feasible if and only if they form a consistent heuristic (speaking roughly, since the sign conventions differ from place to place in the literature). This feasible dual / consistent heuristic defines a non-negative reduced cost and A* is essentially running Dijkstra's algorithm with these reduced costs. If the dual satisfies the weaker condition of admissibility, then A* is instead more akin to the Bellman–Ford algorithm. + +The process that underlies Dijkstra's algorithm is similar to the greedy process used in Prim's algorithm. Prim's purpose is to find a minimum spanning tree that connects all nodes in the graph; Dijkstra is concerned with only two nodes. Prim's does not evaluate the total weight of the path from the starting node, only the individual path. + +Breadth-first search can be viewed as a special-case of Dijkstra's algorithm on unweighted graphs, where the priority queue degenerates into a FIFO queue. + +Fast marching method can be viewed as a continuous version of Dijkstra's algorithm which computes the geodesic distance on a triangle mesh. + + +---------------------------------------------------------- + +##Applications + +1. **Flight Agenda** -- A travel agent requests software for making an agenda of flights for clients. The agent has access to a data base with all airports and flights. Besides the flight number, origin airport and destination, the flights have departure and arrival time. Specifically the agent wants to determine the earliest arrival time for the destination given an origin airport and start time + +2. **Telephone Network** -- In a telephone network the lines have bandwidth, BW. We want to route the phone call via the highest BW. + + + ---------------------------------------------- + **Source** + + [Wikipedia](https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm) + + [Dijkstra](http://www.csl.mtu.edu/cs2321/www/newLectures/30_More_Dijkstra.htm) From 8b5f426dc1f509440dd87007665aaa3e63c45db9 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 25 Oct 2016 11:47:25 +0530 Subject: [PATCH 011/131] Create rsa.c Adding solution for RSA algorithm --- Cryptography_Algorithm/RSA_Algorithm/rsa.c | 140 +++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 Cryptography_Algorithm/RSA_Algorithm/rsa.c diff --git a/Cryptography_Algorithm/RSA_Algorithm/rsa.c b/Cryptography_Algorithm/RSA_Algorithm/rsa.c new file mode 100644 index 000000000..b19b520b8 --- /dev/null +++ b/Cryptography_Algorithm/RSA_Algorithm/rsa.c @@ -0,0 +1,140 @@ +#include +#include +#include +#include + +long int p,q,n,t,flag,e[100],d[100],temp[100],j,m[100],en[100],i; +char msg[100]; +int prime(long int); +void ce(); +long int cd(long int); +void encrypt(); +void decrypt(); +int main() +{ + printf("\nENTER FIRST PRIME NUMBER\n"); + scanf("%ld",&p); + flag=prime(p); + if(flag==0) + { + printf("\nWRONG INPUT\n"); + exit(1); + } + printf("\nENTER ANOTHER PRIME NUMBER\n"); + scanf("%ld",&q); + flag=prime(q); + if(flag==0||p==q) + { + printf("\nWRONG INPUT\n"); + exit(1); + } + printf("\nENTER MESSAGE\n"); + fflush(stdin); + scanf("%s",msg); + for(i=0;msg[i]!=NULL;i++) + m[i]=msg[i]; + n=p*q; + t=(p-1)*(q-1); + ce(); + printf("\nPOSSIBLE VALUES OF e AND d ARE\n"); + for(i=0;i0) + { + d[k]=flag; + k++; + } + if(k==99) + break; + } + } +} + +long int cd(long int x) +{ + long int k=1; + while(1) + { + k=k+t; + if(k%x==0) + return(k/x); + } +} + +void encrypt() +{ + long int pt,ct,key=e[0],k,len; + i=0; + len=strlen(msg); + while(i!=len) + { + pt=m[i]; + pt=pt-96; + k=1; + for(j=0;j Date: Sun, 25 Dec 2016 09:04:41 +0530 Subject: [PATCH 012/131] Deleting rsa.c --- Cryptography_Algorithm/RSA_Algorithm/rsa.c | 140 --------------------- 1 file changed, 140 deletions(-) delete mode 100644 Cryptography_Algorithm/RSA_Algorithm/rsa.c diff --git a/Cryptography_Algorithm/RSA_Algorithm/rsa.c b/Cryptography_Algorithm/RSA_Algorithm/rsa.c deleted file mode 100644 index b19b520b8..000000000 --- a/Cryptography_Algorithm/RSA_Algorithm/rsa.c +++ /dev/null @@ -1,140 +0,0 @@ -#include -#include -#include -#include - -long int p,q,n,t,flag,e[100],d[100],temp[100],j,m[100],en[100],i; -char msg[100]; -int prime(long int); -void ce(); -long int cd(long int); -void encrypt(); -void decrypt(); -int main() -{ - printf("\nENTER FIRST PRIME NUMBER\n"); - scanf("%ld",&p); - flag=prime(p); - if(flag==0) - { - printf("\nWRONG INPUT\n"); - exit(1); - } - printf("\nENTER ANOTHER PRIME NUMBER\n"); - scanf("%ld",&q); - flag=prime(q); - if(flag==0||p==q) - { - printf("\nWRONG INPUT\n"); - exit(1); - } - printf("\nENTER MESSAGE\n"); - fflush(stdin); - scanf("%s",msg); - for(i=0;msg[i]!=NULL;i++) - m[i]=msg[i]; - n=p*q; - t=(p-1)*(q-1); - ce(); - printf("\nPOSSIBLE VALUES OF e AND d ARE\n"); - for(i=0;i0) - { - d[k]=flag; - k++; - } - if(k==99) - break; - } - } -} - -long int cd(long int x) -{ - long int k=1; - while(1) - { - k=k+t; - if(k%x==0) - return(k/x); - } -} - -void encrypt() -{ - long int pt,ct,key=e[0],k,len; - i=0; - len=strlen(msg); - while(i!=len) - { - pt=m[i]; - pt=pt-96; - k=1; - for(j=0;j Date: Sun, 25 Dec 2016 09:09:41 +0530 Subject: [PATCH 013/131] Create rsa.py RSA algorithm implemented in python --- Cryptography/RSA_Algorithm/rsa.py | 116 ++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 Cryptography/RSA_Algorithm/rsa.py diff --git a/Cryptography/RSA_Algorithm/rsa.py b/Cryptography/RSA_Algorithm/rsa.py new file mode 100644 index 000000000..d4d764752 --- /dev/null +++ b/Cryptography/RSA_Algorithm/rsa.py @@ -0,0 +1,116 @@ +import random + + +''' +Euclid's algorithm for determining the greatest common divisor +Use iteration to make it faster for larger integers +''' +def gcd(a, b): + while b != 0: + a, b = b, a % b + return a + +''' +Euclid's extended algorithm for finding the multiplicative inverse of two numbers +''' +def multiplicative_inverse(e, phi): + d = 0 + x1 = 0 + x2 = 1 + y1 = 1 + temp_phi = phi + + while e > 0: + temp1 = temp_phi/e + temp2 = temp_phi - temp1 * e + temp_phi = e + e = temp2 + + x = x2- temp1* x1 + y = d - temp1 * y1 + + x2 = x1 + x1 = x + d = y1 + y1 = y + + if temp_phi == 1: + return d + phi + +''' +Tests to see if a number is prime. +''' +def is_prime(num): + if num == 2: + return True + if num < 2 or num % 2 == 0: + return False + for n in xrange(3, int(num**0.5)+2, 2): + if num % n == 0: + return False + return True + +def generate_keypair(p, q): + if not (is_prime(p) and is_prime(q)): + raise ValueError('Both numbers must be prime.') + elif p == q: + raise ValueError('p and q cannot be equal') + #n = pq + n = p * q + + #Phi is the totient of n + # n number theory, Euler's totient function counts the positive integers up to a given integer n that are relatively prime to n. + phi = (p-1) * (q-1) + + #Choose an integer e such that e and phi(n) are coprime + e = random.randrange(1, phi) + + #Use Euclid's Algorithm to verify that e and phi(n) are comprime + + g = gcd(e, phi) + while g != 1: + e = random.randrange(1, phi) + g = gcd(e, phi) + + #Use Extended Euclid's Algorithm to generate the private key + + d = multiplicative_inverse(e, phi) + + #Return public and private keypair + #Public key is (e, n) and private key is (d, n) + return ((e, n), (d, n)) + +def encrypt(pk, plaintext): + #Unpack the key into it's components + key, n = pk + #Convert each letter in the plaintext to numbers based on the character using a^b mod m + cipher = [(ord(char) ** key) % n for char in plaintext] + #Return the array of bytes + return cipher + +def decrypt(pk, ciphertext): + #Unpack the key into its components + key, n = pk + #Generate the plaintext based on the ciphertext and key using a^b mod m + plain = [chr((char ** key) % n) for char in ciphertext] + #Return the array of bytes as a string + return ''.join(plain) + + +if __name__ == '__main__': + ''' + Detect if the script is being run directly by the user + ''' + print "RSA Encrypter/ Decrypter" + p = int(raw_input("Enter a prime number (17, 19, 23, etc): ")) + q = int(raw_input("Enter another prime number (Not one you entered above): ")) + print "Generating your public/private keypairs now . . ." + public, private = generate_keypair(p, q) + print "Your public key is ", public ," and your private key is ", private + message = raw_input("Enter a message to encrypt with your private key: ") + encrypted_msg = encrypt(private, message) + print "Your encrypted message is: " + print ''.join(map(lambda x: str(x), encrypted_msg)) + print "Decrypting message with public key ", public ," . . ." + print "Your message is:" + print decrypt(public, encrypted_msg) From d01ab81da9a5f8b38a46d1d96235e5d3589c258e Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sun, 25 Dec 2016 09:14:17 +0530 Subject: [PATCH 014/131] Create rsa.py RSA Algorithm implemented in python --- Cryptography/RSA_Algortihm/rsa.py | 113 ++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 Cryptography/RSA_Algortihm/rsa.py diff --git a/Cryptography/RSA_Algortihm/rsa.py b/Cryptography/RSA_Algortihm/rsa.py new file mode 100644 index 000000000..3199e6bfc --- /dev/null +++ b/Cryptography/RSA_Algortihm/rsa.py @@ -0,0 +1,113 @@ +import random + + +''' +Euclid's algorithm for determining the greatest common divisor +Use iteration to make it faster for larger integers +''' +def gcd(a, b): + while b != 0: + a, b = b, a % b + return a + +''' +Euclid's extended algorithm for finding the multiplicative inverse of two numbers +''' +def multiplicative_inverse(e, phi): + d = 0 + x1 = 0 + x2 = 1 + y1 = 1 + temp_phi = phi + + while e > 0: + temp1 = temp_phi/e + temp2 = temp_phi - temp1 * e + temp_phi = e + e = temp2 + + x = x2- temp1* x1 + y = d - temp1 * y1 + + x2 = x1 + x1 = x + d = y1 + y1 = y + + if temp_phi == 1: + return d + phi + +''' +Tests to see if a number is prime. +''' +def is_prime(num): + if num == 2: + return True + if num < 2 or num % 2 == 0: + return False + for n in xrange(3, int(num**0.5)+2, 2): + if num % n == 0: + return False + return True + +def generate_keypair(p, q): + if not (is_prime(p) and is_prime(q)): + raise ValueError('Both numbers must be prime.') + elif p == q: + raise ValueError('p and q cannot be equal') + #n = pq + n = p * q + + #Phi is the totient of n + phi = (p-1) * (q-1) + + #Choose an integer e such that e and phi(n) are coprime + e = random.randrange(1, phi) + + #Use Euclid's Algorithm to verify that e and phi(n) are comprime + g = gcd(e, phi) + while g != 1: + e = random.randrange(1, phi) + g = gcd(e, phi) + + #Use Extended Euclid's Algorithm to generate the private key + d = multiplicative_inverse(e, phi) + + #Return public and private keypair + #Public key is (e, n) and private key is (d, n) + return ((e, n), (d, n)) + +def encrypt(pk, plaintext): + #Unpack the key into it's components + key, n = pk + #Convert each letter in the plaintext to numbers based on the character using a^b mod m + cipher = [(ord(char) ** key) % n for char in plaintext] + #Return the array of bytes + return cipher + +def decrypt(pk, ciphertext): + #Unpack the key into its components + key, n = pk + #Generate the plaintext based on the ciphertext and key using a^b mod m + plain = [chr((char ** key) % n) for char in ciphertext] + #Return the array of bytes as a string + return ''.join(plain) + + +if __name__ == '__main__': + ''' + Detect if the script is being run directly by the user + ''' + print "RSA Encrypter/ Decrypter" + p = int(raw_input("Enter a prime number (17, 19, 23, etc): ")) + q = int(raw_input("Enter another prime number (Not one you entered above): ")) + print "Generating your public/private keypairs now . . ." + public, private = generate_keypair(p, q) + print "Your public key is ", public ," and your private key is ", private + message = raw_input("Enter a message to encrypt with your private key: ") + encrypted_msg = encrypt(private, message) + print "Your encrypted message is: " + print ''.join(map(lambda x: str(x), encrypted_msg)) + print "Decrypting message with public key ", public ," . . ." + print "Your message is:" + print decrypt(public, encrypted_msg) From 4924f1259f12639419a3f82453140d95537f7c7a Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sun, 25 Dec 2016 09:26:56 +0530 Subject: [PATCH 015/131] Update README.md --- README.md | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) diff --git a/README.md b/README.md index ea36f3961..f58a3ac6b 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,167 @@ A Repository to store implementation of some of the famous Data Structures and A
[![Join the chat at https://gitter.im/codeIIEST/Algorithms](https://badges.gitter.im/codeIIEST/Algorithms.svg)](https://gitter.im/codeIIEST/Algorithms?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + + + + +## Sort Algorithms + + +### Bubble +![alt text][bubble-image] + +From [Wikipedia][bubble-wiki]: Bubble sort, sometimes referred to as sinking sort, is a simple sorting algorithm that repeatedly steps through the list to be sorted, compares each pair of adjacent items and swaps them if they are in the wrong order. The pass through the list is repeated until no swaps are needed, which indicates that the list is sorted. + +__Properties__ +* Worst case performance O(n^2) +* Best case performance O(n) +* Average case performance O(n^2) + +###### View the algorithm in [action][bubble-toptal] + + + +### Insertion +![alt text][insertion-image] + +From [Wikipedia][insertion-wiki]: Insertion sort is a simple sorting algorithm that builds the final sorted array (or list) one item at a time. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. + +__Properties__ +* Worst case performance O(n^2) +* Best case performance O(n) +* Average case performance O(n^2) + +###### View the algorithm in [action][insertion-toptal] + + +### Merge +![alt text][merge-image] + +From [Wikipedia][merge-wiki]: In computer science, merge sort (also commonly spelled mergesort) is an efficient, general-purpose, comparison-based sorting algorithm. Most implementations produce a stable sort, which means that the implementation preserves the input order of equal elements in the sorted output. Mergesort is a divide and conquer algorithm that was invented by John von Neumann in 1945. + +__Properties__ +* Worst case performance O(n log n) +* Best case performance O(n) +* Average case performance O(n) + + +###### View the algorithm in [action][merge-toptal] + +### Quick +![alt text][quick-image] + +From [Wikipedia][quick-wiki]: Quicksort (sometimes called partition-exchange sort) is an efficient sorting algorithm, serving as a systematic method for placing the elements of an array in order. + +__Properties__ +* Worst case performance O(n^2) +* Best case performance O(n log n) or O(n) with three-way partition +* Average case performance O(n^2) + +###### View the algorithm in [action][quick-toptal] + +### Selection +![alt text][selection-image] + +From [Wikipedia][selection-wiki]: The algorithm divides the input list into two parts: the sublist of items already sorted, which is built up from left to right at the front (left) of the list, and the sublist of items remaining to be sorted that occupy the rest of the list. Initially, the sorted sublist is empty and the unsorted sublist is the entire input list. The algorithm proceeds by finding the smallest (or largest, depending on sorting order) element in the unsorted sublist, exchanging (swapping) it with the leftmost unsorted element (putting it in sorted order), and moving the sublist boundaries one element to the right. + +__Properties__ +* Worst case performance O(n^2) +* Best case performance O(n^2) +* Average case performance O(n^2) + +###### View the algorithm in [action][selection-toptal] + +### Shell +![alt text][shell-image] + +From [Wikipedia][shell-wiki]: Shellsort is a generalization of insertion sort that allows the exchange of items that are far apart. The idea is to arrange the list of elements so that, starting anywherem considereing every nth element gives a sorted list. Such a list is said to be h-sorted. Equivanelty, it can be thought of as h intterleaved lists, each individually sorted. + +__Properties__ +* Worst case performance O(nlog2 2n) +* Best case performance O(n log n) +* Average case performance depends on gap sequence + +###### View the algorithm in [action][shell-toptal] + +###Time-Compexity Graphs + +Comparing the complexity of sorting algorithms (Bubble Sort, Insertion Sort, Selection Sort) + +[Complexity Graphs](https://github.com/prateekiiest/Python/blob/master/sorts/sortinggraphs.png) + +---------------------------------------------------------------------------------- + +## Search Algorithms + +### Linear +![alt text][linear-image] + +From [Wikipedia][linear-wiki]: linear search or sequential search is a method for finding a target value within a list. It sequentially checks each element of the list for the target value until a match is found or until all the elements have been searched. + Linear search runs in at worst linear time and makes at most n comparisons, where n is the length of the list. + +__Properties__ +* Worst case performance O(n) +* Best case performance O(1) +* Average case performance O(n) +* Worst case space complexity O(1) iterative + +### Binary +![alt text][binary-image] + +From [Wikipedia][binary-wiki]: Binary search, also known as half-interval search or logarithmic search, is a search algorithm that finds the position of a target value within a sorted array. It compares the target value to the middle element of the array; if they are unequal, the half in which the target cannot lie is eliminated and the search continues on the remaining half until it is successful. + +__Properties__ +* Worst case performance O(log n) +* Best case performance O(1) +* Average case performance O(log n) +* Worst case space complexity O(1) + +---------------------------------------------------------------------------------------------------------------------- + +## Ciphers + +### Caesar +![alt text][caesar]
+In cryptography, a **Caesar cipher**, also known as Caesar's cipher, the shift cipher, Caesar's code or Caesar shift, is one of the simplest and most widely known encryption techniques.
+It is **a type of substitution cipher** in which each letter in the plaintext is replaced by a letter some fixed number of positions down the alphabet. For example, with a left shift of 3, D would be replaced by A, E would become B, and so on.
+The method is named after **Julius Caesar**, who used it in his private correspondence.
+The encryption step performed by a Caesar cipher is often incorporated as part of more complex schemes, such as the Vigenère cipher, and still has modern application in the ROT13 system. As with all single-alphabet substitution ciphers, the Caesar cipher is easily broken and in modern practice offers essentially no communication security. +###### Source: [Wikipedia](https://en.wikipedia.org/wiki/Caesar_cipher) + + + + + +[bubble-toptal]: https://www.toptal.com/developers/sorting-algorithms/bubble-sort +[bubble-wiki]: https://en.wikipedia.org/wiki/Bubble_sort +[bubble-image]: https://upload.wikimedia.org/wikipedia/commons/thumb/8/83/Bubblesort-edited-color.svg/220px-Bubblesort-edited-color.svg.png "Bubble Sort" + +[insertion-toptal]: https://www.toptal.com/developers/sorting-algorithms/insertion-sort +[insertion-wiki]: https://en.wikipedia.org/wiki/Insertion_sort +[insertion-image]: https://upload.wikimedia.org/wikipedia/commons/7/7e/Insertionsort-edited.png "Insertion Sort" + +[quick-toptal]: https://www.toptal.com/developers/sorting-algorithms/quick-sort +[quick-wiki]: https://en.wikipedia.org/wiki/Quicksort +[quick-image]: https://upload.wikimedia.org/wikipedia/commons/6/6a/Sorting_quicksort_anim.gif "Quick Sort" + +[merge-toptal]: https://www.toptal.com/developers/sorting-algorithms/merge-sort +[merge-wiki]: https://en.wikipedia.org/wiki/Merge_sort +[merge-image]: https://upload.wikimedia.org/wikipedia/commons/c/cc/Merge-sort-example-300px.gif "Merge Sort" + +[selection-toptal]: https://www.toptal.com/developers/sorting-algorithms/selection-sort +[selection-wiki]: https://en.wikipedia.org/wiki/Selection_sort +[selection-image]: https://upload.wikimedia.org/wikipedia/commons/thumb/b/b0/Selection_sort_animation.gif/250px-Selection_sort_animation.gif "Selection Sort Sort" + +[shell-toptal]: https://www.toptal.com/developers/sorting-algorithms/shell-sort +[shell-wiki]: https://en.wikipedia.org/wiki/Shellsort +[shell-image]: https://upload.wikimedia.org/wikipedia/commons/d/d8/Sorting_shellsort_anim.gif "Shell Sort" + +[linear-wiki]: https://en.wikipedia.org/wiki/Linear_search +[linear-image]: http://www.tutorialspoint.com/data_structures_algorithms/images/linear_search.gif + +[binary-wiki]: https://en.wikipedia.org/wiki/Binary_search_algorithm +[binary-image]: https://upload.wikimedia.org/wikipedia/commons/f/f7/Binary_search_into_array.png + + +[caesar]: https://upload.wikimedia.org/wikipedia/commons/4/4a/Caesar_cipher_left_shift_of_3.svg From 7fcb8a517dde43ce24ee4c3bcad9ddd2fddefb2d Mon Sep 17 00:00:00 2001 From: smitbose Date: Mon, 26 Dec 2016 15:10:06 +0530 Subject: [PATCH 016/131] added gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..546caba5d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.sass_cache/ +_site/ + From f085df582f59a28d0f81b3ee016e971a747dad09 Mon Sep 17 00:00:00 2001 From: smitbose Date: Mon, 26 Dec 2016 15:13:10 +0530 Subject: [PATCH 017/131] Added search and sort --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 546caba5d..49eac9d72 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ -.sass_cache/ +.sass-cache/ _site/ From 85a3340549b39b6bf57d1d958bc0110f7a2e6526 Mon Sep 17 00:00:00 2001 From: smitbose Date: Mon, 26 Dec 2016 15:15:12 +0530 Subject: [PATCH 018/131] Added search and sort --- search/README.md | 0 sort/README.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 search/README.md create mode 100644 sort/README.md diff --git a/search/README.md b/search/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/sort/README.md b/sort/README.md new file mode 100644 index 000000000..e69de29bb From c496bc3f0945057826dfa7bd970708671d816b5b Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 14:51:15 +0530 Subject: [PATCH 019/131] Add files via upload --- normaldist.png | Bin 0 -> 16122 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 normaldist.png diff --git a/normaldist.png b/normaldist.png new file mode 100644 index 0000000000000000000000000000000000000000..e26cc3fa888c46061e7ef59a05b7c7a5b5f9cf92 GIT binary patch literal 16122 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 O5NQbo@lsKJ|NjR*Bbzw@ literal 0 HcmV?d00001 From 74cb8d5dc82f5d12ff264737fabeca215df55ba7 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 14:57:42 +0530 Subject: [PATCH 020/131] Add files via upload --- normaldistributionforarrayelements.png | Bin 0 -> 13237 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 normaldistributionforarrayelements.png diff --git a/normaldistributionforarrayelements.png b/normaldistributionforarrayelements.png new file mode 100644 index 0000000000000000000000000000000000000000..997f46adac036fac5000434cb3825dbeaea100e7 GIT binary patch literal 13237 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 Y&?BAnTm7jA-n)UwN-9ZIh#7tO50F)@;Q#;t literal 0 HcmV?d00001 From b8594abe63b8a24af5896869e28326b15b0107b8 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 17:42:37 +0530 Subject: [PATCH 021/131] Delete normaldist.png --- normaldist.png | Bin 16122 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 normaldist.png diff --git a/normaldist.png b/normaldist.png deleted file mode 100644 index e26cc3fa888c46061e7ef59a05b7c7a5b5f9cf92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16122 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 O5NQbo@lsKJ|NjR*Bbzw@ From 33ea39f59e75c9c37ed9fa124e3f2795af71b2fe Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 17:42:52 +0530 Subject: [PATCH 022/131] Delete normaldistributionforarrayelements.png --- normaldistributionforarrayelements.png | Bin 13237 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 normaldistributionforarrayelements.png diff --git a/normaldistributionforarrayelements.png b/normaldistributionforarrayelements.png deleted file mode 100644 index 997f46adac036fac5000434cb3825dbeaea100e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13237 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 Y&?BAnTm7jA-n)UwN-9ZIh#7tO50F)@;Q#;t From 52d39e8825c87dc0e3c83ef19590f30fe8a33228 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 17:46:58 +0530 Subject: [PATCH 023/131] Create bubble_sort.c --- sort/bubble_sort.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 sort/bubble_sort.c diff --git a/sort/bubble_sort.c b/sort/bubble_sort.c new file mode 100644 index 000000000..7b7701f26 --- /dev/null +++ b/sort/bubble_sort.c @@ -0,0 +1,44 @@ + +// BUBBLE SORT + +#include + + +void bubblesort(int arr[], int size) +{ + int i, j; + for (i = 0; i < size; i++) // Function where the actual algorithm is implemented + { + for (j = 0; j < size - i; j++) + { + if (arr[j] > arr[j+1]) + swap(&arr[j], &arr[j+1]); + + } + } +} +void swap(int *a, int *b) +{ + int temp; // Function for swapping two variables + temp = *a; + *a = *b; + *b = temp; +} +int main() +{ + int array[100], i, size; + printf("How many numbers you want to sort: "); // Enter the numbers to sort + + scanf("%d", &size); + + printf("\nEnter %d numbers : ", size); + for (i = 0; i < size; i++) + scanf("%d", &array[i]); + bubblesort(array, size); + printf("\nSorted array is "); + + for (i = 0; i < size; i++) + printf(" %d ", array[i]); + return 0; + +} From 04569855702855840804ad53eefec20e5f35b67a Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 17:48:04 +0530 Subject: [PATCH 024/131] Create linear_search.c --- search/linear_search.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 search/linear_search.c diff --git a/search/linear_search.c b/search/linear_search.c new file mode 100644 index 000000000..b5b6d37ef --- /dev/null +++ b/search/linear_search.c @@ -0,0 +1,30 @@ +#include + +int main() +{ + int array[100], search, c, n; + + printf("Enter the number of elements in array\n"); + scanf("%d",&n); // Total no of elements + + printf("Enter %d integer(s)\n", n); + + for (c = 0; c < n; c++) + scanf("%d", &array[c]); // Reading the elements + + printf("Enter the number to search\n"); // Target element to be searched + scanf("%d", &search); + + for (c = 0; c < n; c++) + { + if (array[c] == search) /* if required element found */ + { + printf("%d is present at location %d.\n", search, c+1); + break; + } + } + if (c == n) + printf("%d is not present in array.\n", search); // Element not found + + return 0; +} From 5d7cd753d1c52224bfa76060e913512d483ecdea Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 17:53:08 +0530 Subject: [PATCH 025/131] Create Binary_Search.c --- search/Binary_Search.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 search/Binary_Search.c diff --git a/search/Binary_Search.c b/search/Binary_Search.c new file mode 100644 index 000000000..666d03a44 --- /dev/null +++ b/search/Binary_Search.c @@ -0,0 +1,35 @@ +#include +int main() { + + int n, a[30], item, i, j, mid, top, bottom; + + + printf("Enter how many elements you want:\n"); // no of elements + scanf("%d", &n); + printf("Enter the %d elements in ascending order\n", n); + for (i = 0; i < n; i++) { + scanf("%d", &a[i]); + } + + printf("\nEnter the item to search\n"); // Target element to be searched + scanf("%d", &item); + bottom = 1; + top = n; + + do { + mid = (bottom + top) / 2; + if (item < a[mid]) + top = mid - 1; // Here we are dividing the array into two equal parts + else if (item > a[mid]) /* if target element > mid part of array , we do the search in the upper part of the array + else search in the lower part */ + bottom = mid + 1; + } while (item != a[mid] && bottom <= top); + + if (item == a[mid]) { + printf("Binary search successfull!!\n"); + printf("\n %d found in position: %d\n", item, mid + 1); + } else { + printf("\n Search failed\n %d not found\n", item); + } + return 0; +} From ec78dc575bbd9684d10b0cbaefa8a6bf3c1730a3 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 4 Feb 2017 17:56:20 +0530 Subject: [PATCH 026/131] Create insertion_sort.c --- sort/insertion_sort.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sort/insertion_sort.c diff --git a/sort/insertion_sort.c b/sort/insertion_sort.c new file mode 100644 index 000000000..c578d983c --- /dev/null +++ b/sort/insertion_sort.c @@ -0,0 +1,31 @@ +// INSERTION SORT + +#include + +int main(){ + + int i,j,s,temp,a[20]; + + printf("Enter total elements: "); + scanf("%d",&s); + + printf("Enter %d elements: ",s); + for(i=0;i=0)){ + a[j+1]=a[j]; + j=j-1; + } + a[j+1]=temp; + } + + printf("After sorting: "); + for(i=0;i Date: Sat, 4 Feb 2017 18:00:31 +0530 Subject: [PATCH 027/131] Create selection_sort.c --- sort/selection_sort.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 sort/selection_sort.c diff --git a/sort/selection_sort.c b/sort/selection_sort.c new file mode 100644 index 000000000..0e045928c --- /dev/null +++ b/sort/selection_sort.c @@ -0,0 +1,30 @@ +#Selection Sort + +#include +int main(){ + + int s,i,j,temp,a[20]; + + printf("Enter total elements: "); // total no of elements + scanf("%d",&s); + + printf("Enter %d elements: ",s); // the elements + for(i=0;ia[j]){ + temp=a[i]; // Compare between 2 consecutive elements and swap them if they are not in ascending order + a[i]=a[j]; + a[j]=temp; + } + } + } + + printf("After sorting is: "); + for(i=0;i Date: Sat, 4 Feb 2017 18:02:37 +0530 Subject: [PATCH 028/131] Create Quick_Sort.c --- sort/Quick_Sort.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 sort/Quick_Sort.c diff --git a/sort/Quick_Sort.c b/sort/Quick_Sort.c new file mode 100644 index 000000000..f8f232366 --- /dev/null +++ b/sort/Quick_Sort.c @@ -0,0 +1,76 @@ +#include +#include + + +//quick Sort function to Sort Integer array list +void quicksort(int array[], int firstIndex, int lastIndex) +{ + //declaaring index variables + int pivotIndex, temp, index1, index2; + + if(firstIndex < lastIndex) + { + //assigning first element index as pivot element + pivotIndex = firstIndex; + index1 = firstIndex; + index2 = lastIndex; + + //Sorting in Ascending order with quick sort + while(index1 < index2) + { + while(array[index1] <= array[pivotIndex] && index1 < lastIndex) + { + index1++; + } + while(array[index2]>array[pivotIndex]) + { + index2--; + } + + if(index1 Date: Sat, 4 Feb 2017 18:04:26 +0530 Subject: [PATCH 029/131] Create Merge_Sort.c --- sort/Merge_Sort.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 sort/Merge_Sort.c diff --git a/sort/Merge_Sort.c b/sort/Merge_Sort.c new file mode 100644 index 000000000..02cdabd67 --- /dev/null +++ b/sort/Merge_Sort.c @@ -0,0 +1,65 @@ +/* Merge sort in C */ +#include +#include + +// Function to Merge Arrays L and R into A. +// lefCount = number of elements in L +// rightCount = number of elements in R. +void Merge(int *A,int *L,int leftCount,int *R,int rightCount) { + int i,j,k; + + // i - to mark the index of left aubarray (L) + // j - to mark the index of right sub-raay (R) + // k - to mark the index of merged subarray (A) + i = 0; j = 0; k =0; + + while(i Date: Fri, 24 Nov 2017 11:18:36 +0530 Subject: [PATCH 030/131] dynamic memory allocation and modified variable names --- search/Binary_Search.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/search/Binary_Search.c b/search/Binary_Search.c index 666d03a44..35713e4ab 100644 --- a/search/Binary_Search.c +++ b/search/Binary_Search.c @@ -1,35 +1,38 @@ #include +#include + int main() { - int n, a[30], item, i, j, mid, top, bottom; + int n_terms, *arr, item, i, j, mid, top, bottom; printf("Enter how many elements you want:\n"); // no of elements - scanf("%d", &n); - printf("Enter the %d elements in ascending order\n", n); - for (i = 0; i < n; i++) { - scanf("%d", &a[i]); + scanf("%d", &n_terms); + arr = (int*)malloc(sizeof(int)*n_terms); + printf("Enter the %d elements in ascending order\n", n_terms); + for (i = 0; i < n_terms; i++) { + scanf("%d", &arr[i]); } printf("\nEnter the item to search\n"); // Target element to be searched scanf("%d", &item); bottom = 1; - top = n; + top = n_terms; do { mid = (bottom + top) / 2; - if (item < a[mid]) + if (item < arr[mid]) top = mid - 1; // Here we are dividing the array into two equal parts - else if (item > a[mid]) /* if target element > mid part of array , we do the search in the upper part of the array + else if (item > arr[mid]) /* if target element > mid part of array , we do the search in the upper part of the array else search in the lower part */ bottom = mid + 1; - } while (item != a[mid] && bottom <= top); + } while (item != arr[mid] && bottom <= top); - if (item == a[mid]) { + if (item == arr[mid]) { printf("Binary search successfull!!\n"); - printf("\n %d found in position: %d\n", item, mid + 1); + printf("%d found in position: %d\n", item, mid + 1); } else { - printf("\n Search failed\n %d not found\n", item); + printf("Search failed\n%d not found\n", item); } return 0; } From 982a0752e3f24dc0255418e85fdd1402020d17cf Mon Sep 17 00:00:00 2001 From: abiduzz420 Date: Fri, 24 Nov 2017 11:22:34 +0530 Subject: [PATCH 031/131] dynamic memory allocation in linear_search.c --- search/linear_search.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/search/linear_search.c b/search/linear_search.c index b5b6d37ef..bd88056ff 100644 --- a/search/linear_search.c +++ b/search/linear_search.c @@ -1,21 +1,22 @@ #include - +#include int main() { - int array[100], search, c, n; + int *array, search, c, n_terms; printf("Enter the number of elements in array\n"); - scanf("%d",&n); // Total no of elements + scanf("%d",&n_terms); // Total no of elements - printf("Enter %d integer(s)\n", n); + array = (int*)malloc(sizeof(int)*n_terms); + printf("Enter %d integer(s)\n", n_terms); - for (c = 0; c < n; c++) + for (c = 0; c < n_terms; c++) scanf("%d", &array[c]); // Reading the elements printf("Enter the number to search\n"); // Target element to be searched scanf("%d", &search); - for (c = 0; c < n; c++) + for (c = 0; c < n_terms; c++) { if (array[c] == search) /* if required element found */ { @@ -23,7 +24,7 @@ int main() break; } } - if (c == n) + if (c == n_terms) printf("%d is not present in array.\n", search); // Element not found return 0; From 029582e24fe6d34dc81d4598dec047d72548f1fe Mon Sep 17 00:00:00 2001 From: manojkun Date: Fri, 1 Dec 2017 00:09:47 +0530 Subject: [PATCH 032/131] declared swap function beforehand to avoid conflicting types warning in some standard compilers --- sort/bubble_sort.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sort/bubble_sort.c b/sort/bubble_sort.c index 7b7701f26..7473ca0d0 100644 --- a/sort/bubble_sort.c +++ b/sort/bubble_sort.c @@ -7,9 +7,9 @@ void bubblesort(int arr[], int size) { int i, j; - for (i = 0; i < size; i++) // Function where the actual algorithm is implemented + for (i = 0; i < size - 1; i++) // Function where the actual algorithm is implemented { - for (j = 0; j < size - i; j++) + for (j = 0; j < size - i - 1; j++) { if (arr[j] > arr[j+1]) swap(&arr[j], &arr[j+1]); From 143e3ce2afd8de7894514b4048eeedf096a7ecce Mon Sep 17 00:00:00 2001 From: manojkun Date: Fri, 1 Dec 2017 00:16:09 +0530 Subject: [PATCH 033/131] optimisation , conflicting types warning debugged --- sort/bubble_sort.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sort/bubble_sort.c b/sort/bubble_sort.c index 7473ca0d0..8f47b721f 100644 --- a/sort/bubble_sort.c +++ b/sort/bubble_sort.c @@ -3,6 +3,7 @@ #include +void swap(int*,int*); void bubblesort(int arr[], int size) { @@ -39,6 +40,7 @@ int main() for (i = 0; i < size; i++) printf(" %d ", array[i]); + printf(" "); return 0; } From 850a960277a44add2bc0fd637e09491c1aa0a643 Mon Sep 17 00:00:00 2001 From: chirayu jain Date: Fri, 1 Dec 2017 02:22:35 +0530 Subject: [PATCH 034/131] counting sort algorithm --- sort/New Text Document.txt | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 sort/New Text Document.txt diff --git a/sort/New Text Document.txt b/sort/New Text Document.txt new file mode 100644 index 000000000..a911856c2 --- /dev/null +++ b/sort/New Text Document.txt @@ -0,0 +1,45 @@ +// C Program for counting sort +#include +#include +#define RANGE 255 + + +void countSort(char arr[]) +{ + + char output[strlen(arr)]; + + // Create a count array to store count of inidividul + + int count[RANGE + 1], i; + memset(count, 0, sizeof(count)); + + for(i = 0; arr[i]; ++i) + ++count[arr[i]]; + + for (i = 1; i <= RANGE; ++i) + count[i] += count[i-1]; + + // Build the output character array + for (i = 0; arr[i]; ++i) + { + output[count[arr[i]]-1] = arr[i]; + --count[arr[i]]; + } + + // Copy the output array to arr, so that arr now + // contains sorted characters + for (i = 0; arr[i]; ++i) + arr[i] = output[i]; +} + + +int main() +{ + char arr[] = "chirayu";//"jain"; + + countSort(arr); + + printf("Sorted character array is %sn", arr); + return 0; +} \ No newline at end of file From 76ec41ed94cfa2293e6aa6afc8e8fd510fa9ee30 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Fri, 1 Dec 2017 08:46:05 +0530 Subject: [PATCH 035/131] Update Binary_Search.c --- search/Binary_Search.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/search/Binary_Search.c b/search/Binary_Search.c index 35713e4ab..fcb8281cb 100644 --- a/search/Binary_Search.c +++ b/search/Binary_Search.c @@ -6,12 +6,13 @@ int main() { int n_terms, *arr, item, i, j, mid, top, bottom; + printf("Enter how many elements you want:\n"); // no of elements scanf("%d", &n_terms); arr = (int*)malloc(sizeof(int)*n_terms); printf("Enter the %d elements in ascending order\n", n_terms); for (i = 0; i < n_terms; i++) { - scanf("%d", &arr[i]); + scanf("%d", &arr[i]); } printf("\nEnter the item to search\n"); // Target element to be searched From cd2d6f08c719d0e1d01245367abaebb3ac0f7239 Mon Sep 17 00:00:00 2001 From: Dhruv Apte Date: Fri, 1 Dec 2017 11:16:21 +0530 Subject: [PATCH 036/131] Added Boyer-Moore string search algorithms --- search/string_search/boyer_moore_algorithm.c | 47 ++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 search/string_search/boyer_moore_algorithm.c diff --git a/search/string_search/boyer_moore_algorithm.c b/search/string_search/boyer_moore_algorithm.c new file mode 100644 index 000000000..886f5fee6 --- /dev/null +++ b/search/string_search/boyer_moore_algorithm.c @@ -0,0 +1,47 @@ +# include +# include +# include +# define NO_OF_CHARS 256 + +int +max(int a, int b) +{ + return ((a > b) ? a: b); +} + + +void +badCharHeuristic(char *str, int size, + int badchar[NO_OF_CHARS]) +{ + int i; + + for (i = 0; i < NO_OF_CHARS; i++) + badchar[i] = -1; + + + for (i = 0; i < size; i++) + badchar[(int) str[i]] = i; +} + +void +search(char *txt, char *pat) +{ + int m = strlen(pat); + int n = strlen(txt); + + int badchar[NO_OF_CHARS]; + badCharHeuristic(pat, m, badchar); + int s = 0; + while (s <= (n - m)) { + int j = m-1; + while(j >= 0 && pat[j] == txt[s+j]) + j--; + if (j < 0) { + printf("\n pattern occurs at shift = %d", s); + s += (s+m < n) ? m-badchar[txt[s+m]] : 1; + + } else + s += max(1, j - badchar[txt[s+j]]); + } +} From e2b433a6b2659fa1d5ce196801080e302c02e3f2 Mon Sep 17 00:00:00 2001 From: manojkun Date: Fri, 1 Dec 2017 11:24:32 +0530 Subject: [PATCH 037/131] j>=0 should be the first condition since c use shortciruit & operator --- sort/insertion_sort.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sort/insertion_sort.c b/sort/insertion_sort.c index c578d983c..6a07cfc5f 100644 --- a/sort/insertion_sort.c +++ b/sort/insertion_sort.c @@ -16,7 +16,7 @@ int main(){ for(i=1;i=0)){ + while((j>=0) && (temp Date: Fri, 1 Dec 2017 11:30:19 +0530 Subject: [PATCH 038/131] updated mistake in README.md merge sort runs average case at O(n logn) not O(n^2) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f58a3ac6b..bdc464db3 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ From [Wikipedia][quick-wiki]: Quicksort (sometimes called partition-exchange sor __Properties__ * Worst case performance O(n^2) * Best case performance O(n log n) or O(n) with three-way partition -* Average case performance O(n^2) +* Average case performance O(n log n) ###### View the algorithm in [action][quick-toptal] From c3b52d43083b39cf1690a45dd96c346299c22699 Mon Sep 17 00:00:00 2001 From: manojkun Date: Fri, 1 Dec 2017 11:37:18 +0530 Subject: [PATCH 039/131] Made minor optimisation --- search/Binary_Search.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search/Binary_Search.c b/search/Binary_Search.c index fcb8281cb..3f6b21e52 100644 --- a/search/Binary_Search.c +++ b/search/Binary_Search.c @@ -21,7 +21,7 @@ int main() { top = n_terms; do { - mid = (bottom + top) / 2; + mid = bottom + (top - bottom)/2 ; // same as (bottom + top / 2) but considers overflow condition when bottom + top might be larger than int if (item < arr[mid]) top = mid - 1; // Here we are dividing the array into two equal parts else if (item > arr[mid]) /* if target element > mid part of array , we do the search in the upper part of the array From 00dfdb7bd435e743b6e86cff00cfcf202eab400c Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Fri, 1 Dec 2017 12:12:03 +0530 Subject: [PATCH 040/131] Update New Text Document.txt --- sort/New Text Document.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sort/New Text Document.txt b/sort/New Text Document.txt index a911856c2..2eaea2258 100644 --- a/sort/New Text Document.txt +++ b/sort/New Text Document.txt @@ -32,7 +32,8 @@ void countSort(char arr[]) for (i = 0; arr[i]; ++i) arr[i] = output[i]; } - + + int main() { @@ -42,4 +43,4 @@ int main() printf("Sorted character array is %sn", arr); return 0; -} \ No newline at end of file +} From b246e80fb1184d7f5c43f94346877b9cb6f6b661 Mon Sep 17 00:00:00 2001 From: The Codacy Badger Date: Fri, 1 Dec 2017 07:11:33 +0000 Subject: [PATCH 041/131] Add Codacy badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bdc464db3..5c60360e5 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ A Repository to store implementation of some of the famous Data Structures and A
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/027cc235e9024d4da77ebd358ca7becf)](https://www.codacy.com/app/prateekkol21/Algorithms?utm_source=github.com&utm_medium=referral&utm_content=codeIIEST/Algorithms&utm_campaign=badger) [![Join the chat at https://gitter.im/codeIIEST/Algorithms](https://badges.gitter.im/codeIIEST/Algorithms.svg)](https://gitter.im/codeIIEST/Algorithms?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From 3fe0dbefb086360992beb4b35d7470cc387d9f1e Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Fri, 1 Dec 2017 12:44:18 +0530 Subject: [PATCH 042/131] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c60360e5..bde85bc6a 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ A Repository to store implementation of some of the famous Data Structures and A
-[![Codacy Badge](https://api.codacy.com/project/badge/Grade/027cc235e9024d4da77ebd358ca7becf)](https://www.codacy.com/app/prateekkol21/Algorithms?utm_source=github.com&utm_medium=referral&utm_content=codeIIEST/Algorithms&utm_campaign=badger) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/027cc235e9024d4da77ebd358ca7becf)](https://www.codacy.com/app/prateekkol21/Algorithms?utm_source=github.com&utm_medium=referral&utm_content=codeIIEST/Algorithms&utm_campaign=badger) [![Build status](https://ci.appveyor.com/api/projects/status/i6utrnqnasqguk2i?svg=true)](https://ci.appveyor.com/project/prateekiiest/algorithms) + [![Join the chat at https://gitter.im/codeIIEST/Algorithms](https://badges.gitter.im/codeIIEST/Algorithms.svg)](https://gitter.im/codeIIEST/Algorithms?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From 9789eac80e2bb4ac565f06be085b8d181e9925e7 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Fri, 1 Dec 2017 12:47:11 +0530 Subject: [PATCH 043/131] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index bde85bc6a..046a5eab8 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ A Repository to store implementation of some of the famous Data Structures and A
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/027cc235e9024d4da77ebd358ca7becf)](https://www.codacy.com/app/prateekkol21/Algorithms?utm_source=github.com&utm_medium=referral&utm_content=codeIIEST/Algorithms&utm_campaign=badger) [![Build status](https://ci.appveyor.com/api/projects/status/i6utrnqnasqguk2i?svg=true)](https://ci.appveyor.com/project/prateekiiest/algorithms) +[![Maintainability](https://api.codeclimate.com/v1/badges/ba75d99b4f2e000a275a/maintainability)](https://codeclimate.com/github/codeIIEST/Algorithms/maintainability) [![Join the chat at https://gitter.im/codeIIEST/Algorithms](https://badges.gitter.im/codeIIEST/Algorithms.svg)](https://gitter.im/codeIIEST/Algorithms?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From 87adfe62f7f095473a2af81c6c17059fd2496749 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Fri, 1 Dec 2017 12:56:56 +0530 Subject: [PATCH 044/131] Revert "counting sort algorithm" --- sort/New Text Document.txt | 46 -------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 sort/New Text Document.txt diff --git a/sort/New Text Document.txt b/sort/New Text Document.txt deleted file mode 100644 index 2eaea2258..000000000 --- a/sort/New Text Document.txt +++ /dev/null @@ -1,46 +0,0 @@ -// C Program for counting sort -#include -#include -#define RANGE 255 - - -void countSort(char arr[]) -{ - - char output[strlen(arr)]; - - // Create a count array to store count of inidividul - - int count[RANGE + 1], i; - memset(count, 0, sizeof(count)); - - for(i = 0; arr[i]; ++i) - ++count[arr[i]]; - - for (i = 1; i <= RANGE; ++i) - count[i] += count[i-1]; - - // Build the output character array - for (i = 0; arr[i]; ++i) - { - output[count[arr[i]]-1] = arr[i]; - --count[arr[i]]; - } - - // Copy the output array to arr, so that arr now - // contains sorted characters - for (i = 0; arr[i]; ++i) - arr[i] = output[i]; -} - - - -int main() -{ - char arr[] = "chirayu";//"jain"; - - countSort(arr); - - printf("Sorted character array is %sn", arr); - return 0; -} From c4b0b68be8011cc712e7ca6d244e33d8e3b9116d Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Fri, 1 Dec 2017 13:10:18 +0530 Subject: [PATCH 045/131] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 046a5eab8..eee82c261 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ A Repository to store implementation of some of the famous Data Structures and A
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/027cc235e9024d4da77ebd358ca7becf)](https://www.codacy.com/app/prateekkol21/Algorithms?utm_source=github.com&utm_medium=referral&utm_content=codeIIEST/Algorithms&utm_campaign=badger) [![Build status](https://ci.appveyor.com/api/projects/status/i6utrnqnasqguk2i?svg=true)](https://ci.appveyor.com/project/prateekiiest/algorithms) -[![Maintainability](https://api.codeclimate.com/v1/badges/ba75d99b4f2e000a275a/maintainability)](https://codeclimate.com/github/codeIIEST/Algorithms/maintainability) + [![Join the chat at https://gitter.im/codeIIEST/Algorithms](https://badges.gitter.im/codeIIEST/Algorithms.svg)](https://gitter.im/codeIIEST/Algorithms?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) From 9cceed489babb9c5775b4b4c373620129a9e2449 Mon Sep 17 00:00:00 2001 From: chirayu jain Date: Fri, 1 Dec 2017 13:30:06 +0530 Subject: [PATCH 046/131] revised counting sort --- sort/{New Text Document.txt => counting_sort.cpp} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename sort/{New Text Document.txt => counting_sort.cpp} (94%) diff --git a/sort/New Text Document.txt b/sort/counting_sort.cpp similarity index 94% rename from sort/New Text Document.txt rename to sort/counting_sort.cpp index a911856c2..70cdd20f7 100644 --- a/sort/New Text Document.txt +++ b/sort/counting_sort.cpp @@ -40,6 +40,6 @@ int main() countSort(arr); - printf("Sorted character array is %sn", arr); + printf("Sorted character array is %s", arr); return 0; } \ No newline at end of file From 91e9853ff6c8ab40a6f245390d3233bb2dfffdf2 Mon Sep 17 00:00:00 2001 From: ADIL MAHMOOD Date: Fri, 1 Dec 2017 14:02:44 +0530 Subject: [PATCH 047/131] added lowest-common-ancestor --- BInary_Tree/lowest_common_ancestor.c | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 BInary_Tree/lowest_common_ancestor.c diff --git a/BInary_Tree/lowest_common_ancestor.c b/BInary_Tree/lowest_common_ancestor.c new file mode 100644 index 000000000..81192f6b7 --- /dev/null +++ b/BInary_Tree/lowest_common_ancestor.c @@ -0,0 +1,66 @@ +#include +#include + +typedef struct Node +{ + int data; + struct Node* left; + struct Node* right; + +}T; +T* newnode(int ); +int FindLCA(T*, int, int); +bool findpath(T*, vector;int ); +int main() +{ + T* root=newnode(1); + root->left=newnode(3); + root->right=newnode(5); + root->left->left=newnode(6); + root->right->right=newnode(4); + root->left->right=newnode(12); + cout<path1,path2; + if(!findpath(root,path1,n1)&&!findpath(root,path2,n2)) + return -1; + int i; + for(int i=0;ipath1;int n) +{ + if(root==NULL)return false; + if(root->data==key)return root; + + if((root-T* newnode(int value) +{ + T* temp=(T*)malloc(sizeof(T)); + temp->data=value; + temp->left=NULL; + temp->right=NULL; + return temp; + +}>left&&findpath(root,path1,n))||(root->right && findpath(root,path2,int n))) + return true; + + path.pop_back(); + return false; +} + +T* newnode(int value) +{ + T* temp=(T*)malloc(sizeof(T)); + temp->data=value; + temp->left=NULL; + temp->right=NULL; + return temp; + +} From aaeb518e4713c411817a70feb240a0dbfdb21751 Mon Sep 17 00:00:00 2001 From: ADIL MAHMOOD Date: Fri, 1 Dec 2017 14:06:37 +0530 Subject: [PATCH 048/131] aded level_order_traversal.c --- BInary_Tree/level_order_traversal.c | 65 +++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 BInary_Tree/level_order_traversal.c diff --git a/BInary_Tree/level_order_traversal.c b/BInary_Tree/level_order_traversal.c new file mode 100644 index 000000000..1bbf80d26 --- /dev/null +++ b/BInary_Tree/level_order_traversal.c @@ -0,0 +1,65 @@ +#include +#include +//////////////////////////////////////////////////// +typedef struct Node +{ + int data; + struct Node* left; + struct Node* right; + +}T; +/////////////////////////////////////////////////// +T* newnode(int); +void LevelOrder(T*); +T* printGivenLevel(T*,int); +int height(T*); +/////////////////////////////////////////////////// +int main() +{ + T* root=newnode(1);//Creating the tree + root->left=newnode(3); + root->right=newnode(5); + root->left->left=newnode(6); + root->right->right=newnode(4); + root->left->right=newnode(12); + LevelOrder(root); + +} + +T* newnode(int value) +{ + T* temp=(T*)malloc(sizeof(T)); + temp->data=value; + temp->left=NULL; + temp->right=NULL; + return temp; + +} + +void LevelOrder(T* root) +{ + int level; + for(level=1;level<=height(root);level++) + {printGivenLevel(root,level);} +} + +int height(T* root) +{ + if(root==NULL) + return 0; + int lh=height(root->left); + int rh=height(root->right); + + return lh>rh?lh+1:rh+1; +} + +T* printGivenLevel(T* root,int level) +{ + if(root==NULL)return NULL; + if(level==1)printf("%d ",root->data); + else{ + printGivenLevel(root->left,level-1); + printGivenLevel(root->right,level-1); + + } +} From e615b03b5e65b6bc7c365c0387aa8901b5bd0d43 Mon Sep 17 00:00:00 2001 From: Dhruv Apte Date: Fri, 1 Dec 2017 15:10:22 +0530 Subject: [PATCH 049/131] Add files via upload --- search/time_compleexity_graph.png | Bin 0 -> 29803 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 search/time_compleexity_graph.png diff --git a/search/time_compleexity_graph.png b/search/time_compleexity_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e6acf69a9d84a59ff44689d4091f7e1305bf64e7 GIT binary patch literal 29803 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 Date: Fri, 1 Dec 2017 15:10:55 +0530 Subject: [PATCH 050/131] Delete time_compleexity_graph.png --- search/time_compleexity_graph.png | Bin 29803 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 search/time_compleexity_graph.png diff --git a/search/time_compleexity_graph.png b/search/time_compleexity_graph.png deleted file mode 100644 index e6acf69a9d84a59ff44689d4091f7e1305bf64e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29803 zcmeFZc{rAD+b(>WB9tLRqge`(ibNtQsfY}r5E7+CnT5Ne6r~iJ3@I5hM`VslQ5ljb zV=`tc^St)c?|I&Lz1#P$ZLRP7XZ`cpwzh7!YdEiSIF5bakNv!^>FQ`MVO_~eQPdKx zy&8uoib05?=nYvG;hVMHw^Q&R<9T&00~Y*TU^yOu-xoXXH91dF9G2uCUA$`CNs1Dp zv@~`axIgM^@;Z8Re4csen@iK00qzLDeLUyvHeXe@PW11%^>N=l{iPPR!*4%+uQy(9 z&wS#@&mRXH9`&oSpO0U0UebHTIrGPldX2U{ZSNY_Y?(ICp1!#{_l|jGS?T2+aleNr zkB0vCw)oa{UQ3;YPGsSS;g(b$g9iCA@ZLxXFMM~|l2TvzYEdcW7eId4uh6k@k)IXp z44ezcY+AlZXyKUS8`;$sj(LAo#rLH1cv4FE7*9ty}NizyJ8; zmuC~556?<^u3H%5N|h(&18O$=wYA?yD7$fTbJH_3GdJeBaj4Esh|<&3r=4!t6tq&F zmAVxccI9(~a_RT)E7|y@i~E0Ma|sCCTqdE@I@DIWanqEoq^PK`{M2iRaBpT2u6lXq$ghr$w%P=JiuR|y%(|mI zRPlT#`|34o=%_rm!9CdyO_}te)8m7sA3iKzqwM?c&6%kBA3uKAzR1qLx-V9J=T5qy8#kOrdkxp|u-2xS z9eMsJJzehfnKQQ|Bh6onE-YM6A316=YQ6rmXp15r(u%3k-+BfHe);*^DK!TN8LGIp z)*vqOP(tlpIR%A1_~yWY10w>v5)4j#uaOWHWl(nQqrG^s`Qyirk*<5m(2oRlbask} zi!=H7_$Ub~>Q8RO4ba{g%n*w9`Z9BAWhDn49i5{4Q1sg6y3As+O+~(f)D|0D;#O2t z>iF{U!4_Y;W9imqOW6gsPb9qCNiNGfcvaA+IC|%0$-GsD+zhuiF)}e(_SL5=x(z() ztd<&mVjOE$;K{3?ps-OvVUh0Ny+(R^T$rSpF+VR|qCbA(M9J&dk3U)~DJwIqo4n#s z9rJec>LsBHHsw5IAVQmN@bh(L|8%-3^`HM)iAzXW54FC2@LR$20=rsyw2y(Lvhu2w zl$5j=FLtS`U($J1dX?je%kR1esYkLMmIyO)b8}Z=nP^Yl7S+@}dNj#!Y-ewt=myhF zwI46fM19rmrV9%Td(^`EW-{6RQTz3`|Nc*&eTU5auf$my|#Yqg}Lr8N#5U`L0v zc6KhJ$OwmRID(b(Y<;%ZxWgkAFTU5WUq9GlVPR2UUoRvgqW=6-Kmbc^ydFb==V)T| z?S+`CGM_lR=9ZlGJ0S@PW^;3MM`!0ZS@z%3PJNYpwC(&N3!h2xkDor#QGyqS=oB0p zSp)?I4@7QXk$tx1U00OvO`~K}VKFg{FBp3bW8>v(bshz@wjP_9oU|NlE-)_el<%yJ z;*gShzHjAvvQG3mo{!PJr_nKR^78t}?hhB)ym^_teVt!ko^nZPY1V*IZK{P}(fpk9 zGo6U*RaLt8?%gYHX%UR_oqKg+_UiW>r}kr3R+nT8C+O4D(;d&9D~Z`1xbb9-*e;G> zGVi-z9YTac1Cll41)l8=TTSjnl~>zNYP_jq3C$b#;wi&-M@SFUws_g z6(Q!w8QQd1(rKhyFDEZgR8H=8U>Uh;kFVC+&TuS5-xK`+7`7#CuberTj_i$tG zV5(t0^PKvYa%0hwl?JX`&D}}jimbu&RmJRPLp)2($V1*c_`0!i^@k51*wrPMBiY5o z-MxMLqSyF98|JK9Am0YbJY`&nvG%ND<@@)?s6($w+EXDDqxF&oVuNO@i1YvF@E>^% zOZ0t45SQp4yV$FKerjPhM{}JMLOk~z6kWS^QHC^$f1yphBAz=*l8s>%*Wwn_O6+r} z(r=vbU74cj;q}{EdVfY^5F#W`*mGK6W&VBVuFL4~(Ra9<=h8i}Q zd9CxdSKF7$uZ5g|c|!8b=FOWk?Y}L>;@R+`0JEia^qa-itStF|X8skA;Z9*yRg1Vj z*`k?C!n>|So4h!YmX=2I_h;I^eS6yR58N!m<$d=1_OXUZn_R+#CBslySQxyz%fffo z{~`l($=kO~`(n9WdTTFYB0f8C|58khNOH#R-Mc3S@&<=`pQo18)Nsq6swE5bPk(kx zZ~tLu=Pj2mU8>4)vcC85VJZHcS}?W}7mv-B-LYeb?mC`z>(&)ZL|wSl`RO6zU~f{T zNw&k9T<0G8BS(%P6~4wj&lb%pa4%an`f?RN|J836zH72heZ3SLD?T$j>ohgeqxpFW zm)^;I26c_&$JAMpj$|*buC9Ln{yi-`oPX`X$e=4rR)v{#{q3k&zT-kpr~1pBoaNN5 zyLbK2tq6t7pAH`UX=$%^=+L36LT|4v4vouqU0v$GFSaDt<@XShu+_H|v!SuEI!RTl zH!K>Onk3Eb+_^I?BclZISI)jpy075{GxC$4^!#vxshu720~5xnt-Cv*ukSSZ;~j~E zd(_qGt*op@#zrIDnqL=sPggxZoO-UwX6kopQPtyJ%$RaC8kLiiL*h$UWt66d1|zzJ z`TY6wl$xcbFrM|#kF!OOF^bE#*m2(7CyoqBmh|c!7mVX9+RK8=DrAe;fiaM@L=i5E z=BA{su&=oE!nV@t^P_D_?G&xJSWQe!ELt;Ip!-L*Y;SGCll9BExi5uE9WMF&dFjQA z7ZHg|@f#<)8TT%2YBJL|V!2pfZ+!ZD=3*7Eu{Q`Tj=i<(PdDZAE?&G?(WRH?^y$+A zN@(oLOOdOtUAsn4+k4{wM1(&Z|EY4- ziL#F$5Ag8ug_&%Xl|3kJoTj$rWQ_)5aKH}lsQ^DezcPWYCr_U~Wzhv`5M)i8Dm(T6DC~?eOrp(5<$gR|{8UOrVRi zYGlpxQkLI~*54$)!XWkOiTE1#kU`~!=a>nDwk8w?4w3PGg zF^SLeiz++{#zrPs__%Jg@%X{Xa`NRBQKnwcprU6}^*z zOc*KeKR@3hweK-7-~j~5{Cnc_qs6OMt%}eLIePTyh`=}|=|xU@z>%sCcf=NNKJiiQ z@}eaIUfcJ@9+LP}Q*&tetT1EYWalbOwsy?B+T6`zTHJ*bKiQ~t-xPy_f;L)~Fk)z} z#s``_%jDb!jv601^842YlMKcXF=0FvA0MC6=tyz{(u~lB3l}nL_5=$o5%&B13bAte zj!U~Wj;lS~diKig+gz+{Y*{sd*RQ8}PrLH)@DyV<#+jGhT$AqDrXJy}6;hR9v%i49 zkm3{+4Bl|$W%ug+EEiX7K5?w2(EFg=gScY78ZLcTD$fKK#)hAAzP-@S)Fu93O z+L(s5(~3Oz{?jM#pH2k0OB{^UK=dCfmrA|s6%;G@;n4YW=jf@%T$ksK{hVBKNG*x< zo};}?92^{C;^HUkF2>6?c72XGa-skXpm&Kore(VCybqB1>)P7PpGtEqMn*=SUv2~i zZE*{rg|HnJW^`!IzjkoPk0w4%E`&u+}za?!9MzoDfq>P3^6Uw z%FwBl#>;_y*8&6xtG!Lf#K_n^`|HSK-Qvp1gM&>RE_2{8Tq{>zzjtr>ug=aGn~Jb| z%5E~A;{#@$e~`^a1`-*mckkX+&hizW>MgtXJ@e#cgo|@uO$sk;Lmc0Th5zw^{C=rH z47qWpo!)(ys9$fr)+jj_BdlTB(B8b!INegXW`CIUYk*+gIGr^UQ&XqjRcD{IINg|& zezf1`&s+W+m*0FbPoBsff6tkm53DDmq%@U2m9SK-Jl9@b!=O56kzc@j8gl2x6CamT zReg0&b=MuUw7iIZzFL=+kpU>f=+IJlqp|VmYOJKkubC-EX6E0s&fnj^XF&$pxG8aE z)UL06g(8LB&Sw&&N|vNF|nfw|K9`sI<4k@r-*6fpVNg&7sj zd}pNWn)6?s=t}w9ET7}pMo-<{cC&0r7$E4MzZJ6W;2nytef8E~#YH^%2s~P0jKU1cpY7b>FgC5h4au+;*F;a`*%? z#rukiQpDif5fRCEqC!LcpFS1)^zHNK&z$PrjH|S?w2ae^y|P`bDifYlT%**4$aEE%`#HM_vf$QO=j2fh!70O7>oxdT#EgiZ1;1>z7@} zV&N^bYef=S4BMZ`ip1~-h-r~UH#I(Z_Ex+9l`AFRzVTy9A;@;uCM-j2yJDJkYQ?XK z%5t=hAkqutO>TCLIdU^IGbGpnXwA%yx76pk$?geSesQpHdMUNhxm(xo>Q(E%zdqEz zu;n;vX67`|xDC{t2`SJx&$WN^?;o~N-dC__qcO)Fot!QLBVl~5o%!+dbzL3b6V2ed zyAksCd^ZJEZ-O|!dH0UA3t$iVaS`V3)!FHB>$#apyXqJwT8JAh$vB-J1J1(Adg=0I z2AxNW7s<0LDo$K`CwHoLUEhyvjuzi}6||%}?w}xI6X`CmvA);uZ;Sq^))YKh9zMEU zkgNL6G3Y`DOPsr_=rEb%huZIs*1XQB5pd;Kw`c}!t$L!#A#Ik+Luk2?5g&3h>4T5= z`w)Oz+#*HOQ*C_en37({- zae|ANy}7nb&ZXDjlY^exhlqG^j1|v~lGOq1UOF^g2kt2bc#x5ixwrLfWSyev%hT5; zCfq+h+O~i|5WTAt4W(vghAZO@pVuu57FAMO2`+2=^7IOY)AckkW2BJMA3s)s#CACR z*6X?*(7iLHwQObO4Rmt}rYcZ{9q^=$+tq;bYpQub(H0)Q;lploU)opx-;=^BH4sXV zo4gC)5-m5Az(f7R40!7|C$19~7RCY!moZBO5Ypo z>Djo^0s<0KvztBHQVXXf`}+H(@}x90jtdc1lz6M6Aw0eF&C2+5hTYw@Tm?tHb_z>L z<{dehgg_h*=x*b78M0tN@G;O0t`@;*0hvHE&Rk_43xNr4@4B&zUB26IyQn_T$a~iQ z@&0D_;ZIvF?d{p{<2=x~0;5*Do`2c0CvHmupf{|PKjjC4WeG5CSDz*faEYn-r@=O= zN9Dx-8o=iV2Xg@Gva+%ceUONX1~Af<3|%f~#Rz)6$Rv!U!R!G{Aj{LIgMj!$?RO}g zZ4Qz#%PoHWnhrby>t*QAALtQ&It?H#!dtfRI5;?L+`9E@Xecj)oJ6;|bLY-+Lck*D z0Chim_AFjMZYf%M`7$#{Z-1b4#n9;JTik-IB0`Cg&`i68wr=HTfo8QUSU@EWqz{_g!RPsf@_;~(qoXOTf*j9LNzbvq#ej=52;1)S zv*SRnS24OLzphaA*>3JLY2)tYRodJvfQ&l9*lGq41RF+{=vGLrmz1ow%ejO((yt%n~XndS-OpK7M^jf;76h&i6wjwu_;QO&cqDr5P0hE{@`|iW0-_niQy83gkRZpD% zq+zLNdEaH2b@gxkh8Z4nDRYa9U3`-!%Dt?H|60w6+HR#ZJ?63YuBz7QBg6Isw^wh1i3)s5;u?x)oHr6OoG)U>}_505tqL}-+uo7{_j70@OU3| z*U`<5ABg+-@#EdUY)+gw<=x-kzk!F<-?+%9z{u0p^`%`?ZWa~{Kki%gwCmTe?o44n zPROm0=XU12de!qQp;B+}-hg$Ik~JR$6&<5**_a%-w{fS$;6PKJsrAyui@Cs;kVUUc z9Zs<$DBCYQJRAqD-gZtSZcR*=9*MM`{XKuUq_Hmc?LDY=+)9k*J7C3gO{DQd(dC{Z zZP^!*l82f6pZX?iI#|lEUS}KWTrA9)Bf}}!H%WCFc0DdPw5({@;4a^5*jJP}zh3i6 zRBUYQ=ca2f&-}1LdLjU{Qg#05z{|q9Df@d59-JzC2|+Mwhxe_Bh#Q-2Kih@6I5|}( zoIQTrZ}GCV(MU>2Z*?ES#TFwu`)6fk=`>^N3i+uWKmOEc3ViTZNXR8RhDCS1X0L-k z@US)w+ge*cnH&e+Np~AGXI!+Xw^2ON@Ht=S$NQH-liJG!eQTe7OES@azC<3vI<(L> z%)gv-9oKaVuU%UV#Z9>4dpI4`#5Vv|mS@if4-Gj+cy@MnDp`k#Ery0J2Q^&&BvQb{ zP#dQ@5!;peIrT>0X{I4Y+YR6Uv@zs{uJO_MP;;^CX|p9DGQ7pcmPz`lPxLjV8;f)$ z%r5zbxg1eH`Lxz6f8wtD>22A&yNv1SH@ki+F65eywAwP2b>;^jq?IbIal}mMnIRz| z8;`%grTNnOYcE+;vPKpj8My*fH|`&x>87ibZJ^3QiSR=uyR{Isgk(gP)_kT(Y4mdZa1nZ<)QpZvvTASKBxj}KAnVC}$>vjzUpwL~N(Sp~gExME^rbPWs)2J!??VesC8 zF5SL!=d$Yj%rgAjjK2~A{?QKam8era@G!}DmxFR`oZ@Qx=>e0zzP{MnwWJVX>e18F z1Bjj4>}gZ5U3bmiyDr%fnN3;=K4bXnI8?lRJS6b2iR2`2(k-5}jp=F=t8yzF!%xI! zs{8peI$UkuGjR2lqQY4HuFD)0i_d!F^JP!Bh<;$%>9BKSNYreXE+nh3Q+Lfb$jB^3 z^28uj&fG)Fpme!6ZeO=!$K17+x-*CmdQbL%t}lUdK!goxY3ZS{A7@qdyr37VLy6#8 zvEtgTTb$qo+P7MJdKOa{c-8WzX2?+}4LnNY}pJ2u+;6}q81w27!mxrm4ey1R_4V*BgU8T9n@4t^c$ zu6`n1v56E1?%w5LU%6%P;L7lf?e!A!qY)xR2o(Rl4g@Lq(d*y^$h#+jT8pP9aGq4AhM~zD|~QFC??LRU-0$5y?aTz z{n_4rJ0yfCt;o|>1C6g7U0lB2UA5zaBBV;^UIe_=&^Kzdg0EjM;kUSOkt{789Ub?s z2)Adz9dnDencH>gPUKFAbQ-f8ypnW2*Xw7QeD!hI$z;}Tkq9`L zO^)4F!p^<5i_t2Q!cJ(e2OdrSYoj7EruZ&cFql`$i0CSyN{)_>#mI|kC|iLuTSHwq z*!c3!on=rc{DCueg@^?Ss7$5zj`#oIhn6%nGUE5*#f#2?H^38BDQ3#f{of7sUD4g7 zsE7ire`?X(N^m9`pk>O@SC^odw*UHYN71pB)~T{u|Ji}ph-X#Miar;xzy7xu0GXl$ z+#4xE^W3>jsIzjeS~XqYJ_}LU@$WA!!nB;6oPbX*BTLAb=LfX-OfNyfW$5o;&py{{ z0kw(VR0d?KnaQrG?r*7r<{llqkO7xKcGwA^YHc{MwH?J0^v1_pQQe8Z+9ZEgky z5t+3r)k5{aLxm;2Gk=(yJ-XIF2eFzO$;fUH6G>dRrq@mF>eL#^8AbFzCcSa4^ZI7r zd2fw9dqiYqIRpd*Cc2*lXUe?X|84#AoXhk_Uw+|Y2P>J#8{ zLjLZ{ZkG;5$>Z2?=O?>wDQise-GC3B_T%Un}a z6A{4bLx?!hiPAksPx0{bK1N)Au=RHK>4ro4J|o@L-~^ChxQtScE=GX@DL@!x39z$v z6>V?GNR`tO6O%UN|2Gh!(j1zUq%8_pv-;CxmMxb*b+>Lluy?HdZ@e{^p1h&fprD7t zYDGsi$bfdSfTud^LiZ6stZfR615VT_`lI60CtgT3d|;ENJqT%hsDtpBn3&kqbp)OX zNL)MDS2#h|2y|iNbgSJqZvFw1EEXDeieG(}1jNO~op`R6wO0EY8%+U*5H%Je_-KRkBP95rh!|uDfDktxE2fnXEalP*J&X!l#?c}l zvo3LM#GYNrrdh{Mo?MKzcHohso^4z>Bor!F*5;g>+g0g`2NxiG7S3XHSlHNhfjT-4 zcWPglXuGN_S&=;v6%bHv)c=jvJq#^Q2odgl*WB^v18x4?osj=X{CZ+SP|z{hQpB-&^9$SWwhP7mL_asRIT!?(!8tT_be5ufuM%l8rx~hun6C}b&G}sZ(kFld8=df4JI#Gqi+1p&hI#E3U_0pe4{rz_om45l^HFdXQgAQX};+uz-=Ybh+yxsRJQ zzB;cdF?;9W4mt`eW7nO|-@n({Pbl&&y-bQ0wh7^#SO=A0^Gi6BkgNwhbN@Zp9gAy452>0MpMVo_ZZoq=SuwPy5TSvAyX&AAHP zd%vZo-dXDx?-$8g;7+PEdc1#T$7z9VoGV!`Oo~^^TIn1CQ^486$+a+u zSV9wqC}<7&-m{{!tBb&MA`$35*|P*fc}YbD+bV_ARVVesY*15*{n(BY4mY%p96-9Y z$(Y)>fL+bg#U%bhsDV0wI_`XWnc)=IBXCpa!R9sKoN4LlJ9TwAk=*F19QQvWi`bXb zfZU7!DdHk1F2scqp3py&4EofuIf6&HVkOonTHbcdZU?BYg z5L1>VOZ*=`Tm^aA(#FO=#Vjw(<8wI_i=t!iZwcE$HwM;%^i79qg|tb=uXNdFR8WG# z%{>=mjmKLQ?LbWRd-P~E_`nn7E8ZQl94T}wfHN+5dkbrEpQwynViJa!{P}1iN^NZr zIyC1eCobw#`I-7OqJ)wfc5hvBAcW?&x!LKC z$V#GXG`Y3xMm|ID(b?PEZvmJ=-A{AhzUw-ZkYA%wutB}^GIB3w_E59epfH$C-02G! zwnO%~LD~*`3COi(Mc9Tv5V(X;q>Rh=oU4^RH8wJ$@#%rQ%je$&ZWQ_Y6730!*3zX* zfd;;K>0AsMRytNpLCFQ-VF!9CMJHCMXdYMmSDBjnT}M}4t+r=TYX{STNcJtKja?%u z!Y{U!UW|zeNev9#Kc}-#a`9df5y|`?9j^a-T}l5X=E>RoKZ^*d;oD$(?B|QJ*b5TE*Qew7KtMD)hLo6p zVa~q2&O3opb)eDRu z!kd6fYQWZJcLvM{KbXv(MF80n2nZSHa%!q0LE7B#feWF-G`2mLJ-gjMcW@P^BQ_Fa-=$DE1JO3Sm4EffxJLR47zapPd^N@#0gGG?p*FhMIeFM=>rpYO4Gso;*F zk`i^)bnQY@13Ww&z4rmAV|tMY=jRw(t6Xp3BU6=pw6D1CeP z?k!Hxk2?mrVSVb3&nPPoO%E15`A5VmMeXSiJS-xrs)BWOby!lnarw564u3$IpQ!Ec z2HGf`9s8mA*%r<)CD*0GCd)z6WrhZL5!n#plO76Kt5tng zLz~}5cs&F2(qcS`zE4|;Kk@3}S}a&djj)CR%$C8D@CWU(#u%8MPY@U;1|c4glTn*(Z#F9tjWR@x$d<5)Wd2p(waXs{hwa;s z+AgiN&V{XQtqP0|#Ks7p+b(!JHQ{30b0<71O181F(eF?K5An|Z2(JP3fRn)rP(#Us ziHYea64`^)@xBI83_a+(+8a`v6VK)#`la~Auf{#1!5c-8{FA3Yxenf zR$LkNYg@@#yO_itCm+|~)zyL;>v+^h`b=C4R&4g$s8DCY&ndF?uy4UnE4XB`F7x}x zJWckVj&v-x(Y0WK@4()yDn3D0;c&{)1TFiTr`Iq9Kd}UqI-bPDK<6dKjt7}oE^V!? zLI8&vK0bvDy#vD%+u_59lNC^lK&giht1(Y!x;OBx#A3Dlf&!Pnh_zDa2B0=>WGz#V zgoFfix*Tjm+TUTL!L>`E5A*b16S~U2LIhU;&?s2j@6@&5TLagz$+VZ7>uSG;QMSproCn_49rmI{K&r)BwX5Bg}=!VO0mp&Hhqwx=AwA3oX zXonK!-T(Y44%?7h#!ZjfWPSGFwJU#gfv0z)E1he+FI?bUw(K(a5j#x8z~iqW(CEUd zlarg6R)k50$$8@L?cyd%LXLckeQqgjFZ# zOBBp{RKWl{1iWGw3o>Yl%CG6kfq?-fmo=+bQ&jSi?7D{QU#qLRs4eyy`+}cCSk~=s z&?-hzS9NBHfk>_HL#+}IWV4WgUK>|#tpn_)C@kT7SZz9Uh#1hH$#jm~foK@zJ+^{` z;Xr=b1!-`*RtW5-WA7E_rd#IeY0c+5AwG$U_U{kBelI*Oc5s?l%G5r1KKxs!=X(%B zuaU&TmT?0UOfq63BVIx|IWCl=2_Yk-BqI3=hro6g1i&PVBJ;CHCMPFzJciezw$B8l zLlqZzji=dFi;$XXP6#m@bI7|^t|Y|?-}Kf1;gZ^ zwp4mNpMRO1{q2Z(MC53(qL}uAvJ5wM1xt3Dn|IJ zIO-^)6=Ec$7Y28oySuv(xB|#eS(;@j5-$U4X)u;sR>$o2T4lKTY5K#=u5jGR4CjZ-&-b2> zU7At8tK|`c_^?5e`4-K}C1lUWA|6i4&%fuH6b~&bYA#Q(cP2u4Ki{LWH`J?F;%+-S zKQnob%S^kUI3ez)JR+x%a&NQwuyXJ2R*?8_rpuR52y*W~eysg2k}cBNvHMqR zD-Cv5>&d?zr~uFVzDCJ44|uriR^@Z50Jyj=%y z!V=O=FC0vUQXk zIQwikqfpsRmF*K0t+my6;NIO6#~B%!LT6@^)~I+I3`%rDsktS#_{{fAI?CACINGWG z9cmw?h#=18gRo-K<}~#oHF5|u0svk|`ynMpl%>)_G!GLE0qe|R7-+j!KP z1tmh;;=8xelAcT{s>-vk>dTj9KpK+c)^4zRUWLcyM|P@CbNi$5n%b6duz0VSsgW6L zm_3f8ykGo1OD)@hmgn_>FTX69!NH;9d8+Q+g3k7xpB~T+cZJXVcpop;eOs*fbz3!E z<(-=BNFiZiI!ur&nCNx><*+EgJ|Bc#C-!E3w#SbPNlSz6TcT8@RQB&Z7jRl3ln7u6 zpf(h)^9m4T7t2Ks)fwI2a-5<2{2?(I_DZy(WKU`vD3A_80>LygQ42ws3GcA;&{V`?889)OG`xO3Q+y@}d?uxY`H7T`WtO zE_m-3XgZWY(}|#2meS@`dj5X&fHaA+$knB5)DdQHMMmC)u>hR_yFl_dbN=)|9uYy| zz4Aj6AS7jhU%|tI2ed-yPUaakNCfIZfHL!PQamb`EyCn^?Ur@5X2UNB9ZD5j1|Ng0z`vhlMnp3+oW>4 z5$&&lJt!DZwUW8_sNt3~-+AB-e+}r9cJj+w=m#*Yn(5aeixN8qjM2p4^uqQaWT95X zPeN#b7H{HXJ3urOH8Rk&O8dc<*PxNtAkaTS*dWJ%7q$%!S_}-En<69)f!14MgzdgO zTLLEtc|O3Ep9n8$nVD}O;|S)NdEPX5S9j#8V77~B;)977N3elrHvkkIV8S|4J2o_5 z7}h4t;Z$wBFzPANt^ z>*(-#PmOSaJ@BITf%5dOnU?uki~F-IDCo2LtJ|+K&qBnx1{%&1duTms({G<@-67Ng zBKb3PoVI^uU~q6SrkGL>eB3ec>Xo31iV;gb6Zz!H6T%hNuHAF?;Zz~BfC4ijwNJM~ z4TrMPNo>m?Tp$JkJVqx%=|R+GvWsN=$=#PQqgF!+0bp5oKwEovgp!K}Amy99!NTXm zc>|cJR@nR#<1;%&7*9T+$xo;b{NPZYWix3`p{_%%JGppx#318H;e3Cz0@bjq1lq~l z2)M{pC+QVe*^BW2Vc_2V2dCMMliNrlSF)Pa)d3pukqC~07$ah zzGtqVn;rE1ozD{zkSIWKgMrQRzq>CQctA62`~CX})XEsv5_$XqKmUiDK+WJsh`bHE zQ~3Zr_L&IJE#11BT>4-FtO1zZWk7)oF0>IIXniOm_LmR5V+#f*tkyqO6-@`9^zGZX z^@!aj?(PHD{86KZN!5AwEq2Fp=5ASjO)*=w#Ql=gYEsj;g^^&<%)!8JrmB}4TDzG0 zzBBRg&fZDUrOfi^&lZ|^c#C@KIWFuKGE}y$r2p}fuIqD8XR?Vt_vyQJS@v2=Tq-Kf zbi&xsb81&CeY4N1`t) z2}7d*`HRv&EeI{!;Cd}_=|8vba0)cT4E*PwD;7>^mw}a6W2CVi_mTbQuz&wTeDhHB z<#E#ytADl-|DXQCL>j8%$Pb&3NTLC`k!Qk~n;N#@kqQD?u3+$L0Fq>lKl(EKr{e$R zCRW3m(wFt#x1LK?Jz>7g5tEpN(uPTnqww6!@Ij(Grsn@;g|2)>e1BLpn4qF_Hz$M$ zih`M`yYbcLq~zpu6d$mgVij^5S&LBX*hQcCKEuv3ZludyMLx3|&wSqk@GeN|)3-na z(Zs`bx~NA)D)(-16*TY+G+VSvLpBT*4^mnMaH(b$LcXiU76NQPp<6s@P+EY`B7F_uo|JkNBRyK#tkyG!t&gET0tW??z^nItc=VaN5_rC zj17Gu2E*!E!L(?R74Qjhb3Fz2T?G`n+tD#??I&O?Y}Q3Jt13~Di|Zm#Lo~KT@oq+a zGNy|i;YGxo>|cdAja^QpI*!6=F+6aYf0>u8WTYlqFLR_pBb}I-I0kVf$9q~~$NbFs z%u`=kVP<~t7qt!OEM%~;T-v(2u0mn3LSNrg_1%$_l*GPmJMOdZNwbyPx0H~wlvm{)$=>4OVvLEK znYYZ~=lqYn@$P5k8iVacnLMU!9o%X^mbUx9WD(KdIdn-xU3|kP_nT_>&)u!QJS4!o z)A`1E=luNCfU*}FPCOm!%ETpgg4tvC$MS4Aw{5B2W7=kO26tJ*XG=u$(|-q$`({djVg5P7wn= zMJZjqZbn6LjX$iSqtwbgBwZg4^xwK5% zMskHrwYM@fN6W>06g9Myd=xk=?eL%LD5k{pLNsO zghGrjF;Qx(A6xOOJ>^oPr~px1Dqst_l#?GhbPqZ7CONc*MTnx_2%#y)yc>-1k&}E} zgI3X&tG|_@o?DYv$z8%()igYpT2M5uxLsiy7vruAon@(s z$9kkrZu$`qK+|97tmQb8DkRV1$Au$X1Ig+C?UyXLJ#~=`B~6HYT(gT@iUqemjU02xuOy^_uQR{hx9< z4N)}Gcg|zQl{S?+@Cd&4NbfO|rVGQL@TP|c1Np-`vxD<o5Q4!9Mum4(w$ zEDRWRp^=|EXb9TfP^)!Ols44UdyIPPOQn~f$dZzhr-mncfB$wFEEwAjuhPJ*&LI@qGx`Uku4YN2!-Q7J;~ zdv#Q%>0HHz9c5<=MvcDK)t!P=8c}FO(L6~14h2k8HC*r^8lqqU&;I(nrWBBiUhvKx z)&S4qS}WzO{3`!IcE|pY*IokDu`^^a+~44aYBqR^l)Ql&7=v9%DIqS#2>t zbr?#O*5btj(uWNVW8b{d814V@t?LgQR~W1Bz*=H5f>hPc$m>lRn_AqI4jypMKAJwm zig-eCM}y-{&J?Dl=^``bLP5xa0}G6BUr29nZ*7+S;iAghj~*rE=H{kZNKrzLI&ogF z42_H`bP+e29h;qHS;!PwO~02DTNI)6UM;#sFXYP0&;LB9;oxfIES|^D zudQLcB_t*xQQ?qX(Q(cr7zFrvdb-}%uU~gmq+#n+%7X_h(J`6R`7p#)qiagfeWIwX z82QYy77iMO{|2j6S*0u5-84q5S>b9z&B(6Bx^M#c4hgam` z%_*_Zp7mny`qII-^wjs=Si%}h_os=e%#M7S0vR_jF#mkQCL2=^`cB;u@R_hg z+N_w7<)m6KBbWrNerUOT&r?~En$J6?PkT@IXZuuo;}sgc4KL!zqTtvup$5Qt7!~D= zj11={mv23vl?M%A&kQV6nV%W<>`N~jAyOQGTyFo%AI?9{WM_G-iIn%}<>l?8qoZxC zs61O>l|3oINe#7*nhxbKh`7DCs|=Jatbg3~NZvjSy2aOq{q&R{37*GP5a!fABD_;c zBu)iv!yKl$R3qpItS29{NNkbwN6XU`5R-+TkvLUHg8rMkk5-Rg8SY%tbM4wdd*3)k zdrxvrOvsn@$w#_;4{AE4=N-ykkI^k&Y4@6*(%>aaJeOQgk6bUnL7IHKgnT=-@a;nX z_>czGA~R4if(Y!K@?Alx}#MQEHl`10wbmz_9Uz+`%==FnvGyO_V%trX&Ey!pY>G znTevjd9}akDf-t)f;0=#tdfg(fT2LNRZWrPC?Aq7SQffM7LQ7`p(|*LBwZCB$UH`; z_J}l+b20ilK%bm1auJWsc@@1zX|Up9e{$lPXnTrHJt_bWiay_Jrahv&UR zwv@2&PHc${X-Ow9G=Zr06()~{e%DWrw&^2!_>=*g4zJvFJODcMU5LkcfykBN3W{2I zG$X!ox~I9hrep!a*pLFXso}IjQM;s+lnY*>@f$_JTG8O`F)c_org^T(YY*IuhSzZ- z$a}28mQ<@FVC07`n;=s#atJnpgD7Rkudv{zDFSFvLMz{Tvl+o3NC*^?hy|9}%5CSK zwm3nWJY;4T0qG|h^g^o!iNWQo;o*}o&gAwydnl$gIyy>%^eCijQ*8K46gyd$WOC~C z>00DWdF)so?Q8h*NOq~(frSqK^mA_M-b05%u=BNLAP4di9AH|_L&91RMh`>Dg9hE9 z^74O5Tfs%6bw>=39C?m1(UpOpbZ=r`0%cZw4r66y5u~W!$Y0z6*rfEk_##8@Pzl?S zN2_44Mds?5E$AxJ3|ii{*#Uk#;DezRKo%qp3Vr8Nqt`Vw6xZ5!@Zeb|8EjsX3Ey89 zEI58s`@jJMxL3U2iHnPWaLBetdTuK^M#(KqxlB0-xfz#UE7x!vu-4;XXKk4nOsVUDWx%KPUpR%(Xn%<5sYj!$g zl6Guo;Ei5{TgkuK#jDhgBFcw_PRf+-TgZmr7%25PykOz&r(On*|42NPdziULn3cRC z(kiy=uUo(VgYwJ&Hv3HCbtf@E0av?w=`=*+z7#Z;TX-2drF)fneBqNOfnj83mU4&C zyg+7v7{q6dSN^2H3^f(RMC&{%vtHE# zKK=)a)!t>IsuoJ_L$%8fzD@bEKJ;#m?}iO3hOYtkLeb4z@b07nn12$Jl12o6q*-2m zq!WkDvjt_SeZ=7b>>4s`b_83zJbnL=zP<}G#6#ClR161Mmd0h=(pu0GGReEN&gPJ< zp8t`n;sjJYyCb~@s^R>U$CkuTQK}X&aMht&GWy(NcHh=U$IIid$mDf4 zImOlAGi(CqM&eX^;8#NFp+Mx1IDG&;P)O$kqdsm0imJXziJZhcB&M*zLR?GXp*Cz_ zxug=RRRi;0D!D6v(S$!Xd?qOmXEo0X3T$n;@Pd3*Cg61dh${?! z#b}90clGQh*M~h8t7zR^d*8~CINQ%66jF#?m9%$D1hyN4QM1|g0p)>pCmoYvQ+q@r z3nxcCSQcMfLcR8Z5tYb$-8()vaZqZ~2-&m`k91BpDUC6q>6|f>MAuNj7(K zjt+!9f41t=nx$?zLk8WRlCI-@PJ@#}<2!^XN@FuJ$GxY?*PCh%wX`=hFyexzt-x9C z73-(}sPFd5KZ!L${UO|CEz481g62*#%tErDtwPfekOV|IAn1XbBI??$0uSOOB!uEz zj*Bm(T#E4uiM3+n0G8D_>yidJ>mu;H+AR`*g&fHRbnTZMUN}(^CuWv*g!~LlHtiEd-1XjRBVG}F}jP`ey@O6YFA-%_EJSN~H_bvON(^;$T64Lu7jhi~uO z6y_y|@sh=0T=-{LoKOKIM>z@Wp^6`nLl+XR@iIC_H3O1~Y2E5f2KMLcx zYn~bW2nH@LE`BMi)0UEfr@YjZy0I9)`SY81pO=3A;rTOEbj*AvJ9?Y)vIRVTajn67 zUq~(^+aE&1!=LZxf42Hhg?{=Gqs}~bDY@#Vb8me(C}5}5E6Uv&6*6D4zM22%odn59 zKrDxs&FI95XJRMemdfo-e4dH=ZjUjgtKV)Rfu9F)fY0g!Iv!bwqSIOB!B}$BsABy}@C-0-GC*{ zv4(6Ani0*tc)rsqt<6V1TeWOs$rZl>8aDJZ%f+RIw^L4YK2UI0YL%&22g@ zb@Xmnm}lwk^V+3v3tb&{4q|4#?b>||nx~ zGw6L$cpXW#)lmI{w}S)WaiM{b7LK>r#+FbL88H`sADWqO4ZBrp{ApCE#sP-!(q16j_ zQBQZ4G-wl%kkG_EuybWc7xs{MI4b5$(^aIexMHa>B@*)*8{$EHV<3|l05E;S+sR^J z6nTz!6nw|~dGPW&F|8@QLqq<;gd;$kK77>QfFH8l|5(lb4KFf)k>KI}wC&e&V`45T z3#C1pnW+mu92&M~AeRz4`aL)AHr~sak+CVtn;#7*uc#Q7iTInZVAua@NvWON0f@+X zQTs!d3T%&u)yQb@rI0gZ#O(t##_p*3$tXj8{U_+VZoDAoYt;OVtu{=TV8P>)7482{ zxJgOUWRjWYyQhbM9&J+co7AK>KMN$@xFgHs5aoh=-Cwm*o4;Zu!i^b!q{5W z-+!#SfC=%-SqU=7z6qLmI935XlWf@i~!-fq+C-d@hBIT<$4mgyg!HRR9SD+{Bn?yx@wAEDy3uygFA(mnZL4n@ zh3j~z)3?$82|)7r-jPs$=H)&$!XRh7Sc;|3Y=~feJ8g5Xz`0x$?tDmCjO=fi5GQ5h z^i8ur&qv<;C*)vkIrkaWhgaW@)$gl-I)aP+I;XYy#6+Pl=EYL}NM8vR-aN0dobd}2 zUV@xdH@j4S#jze9PM=0Py66>~8+r4zLqlJ+7^J=GJDm_s8={N0E-7%9ygL~Fx@Nsl zK8ujrBcceVC8arE-*-gFlT(eR$Pa|_Kia#}cq-Suy^>vO6KQ8AwHpqVp$HkWD;1?8 zA(13W=FCfm-Jte1RN5k0qzs|Rl-VjmJ7dN~B*V(M$ZTPq>u&FJ-uJ_MKEB`1`qIy8 zt!F*Y{oMEe|G%&QbzP7D%-SQlcdERVoTMhYt`>-DdcIiBdCLXMarCCnX-Zd#IG=r?8il5+t)X1Rb`Gt-oI&N{3ub?Ve#zeGSv^2TcB z)2!Z+W&U5^NbpJO=%ojGYT@Jil}7w2dH{*v?7)#F-EngRF*xbve_fRSTj0%S^$dnK zG#|J5k#Z+@DTgt#`K?{{pIYzW$0@n^!jH(VhHLD)|5!V1^}=-}Wy3WJhcR}Uawl>J z?Ka`CltgS?$)_%GY2|YD)C9!ck)drcMIOhn2q3xdEnDgKGV}w`!cpY#)p+OXYF)RN z{Hz_Qxf(|~R-^j**zLMI+p$xFo}KpI*m|oTPREH{`4WSn$BGw*D{mRlp1-M=qTKS} z4AV5o##K_=PsqVBl&gMNA?Z@?2Hxx#hwN2dY!n#lui;urs zkm~uwXKPqj@3l3g5>vl?g8en45K$)%TW zTWp+?HF?&28AZ}?wWdGcN|da>W|kBOg>0jp!@HDWOI|L%y#_-80bx^C~k$T-H;|l&9*4Tqr)!4 zCk$h@S+yft*ubQ2Ws3B!qAsu#tHX4b3hm<-*(c)YRFV z4gCrTm>F?Mj5I^~%Lly;2@cRML_hgUY`tx$X~*kmrWsfNGw)Tg<1{Fcvl zCKNd<9<=4Is9d#=ZPdYwe@opO%Y@41HoukU;vsiTRnkJ=z#xun`ym#4_wHT&?`yXj zoH>&UN>qRSVcAKR5Wic`v(sC2qdv^dhVmyp`rOF8b_$`L7Kql|rE{W!2KxGs!BUQ< zN)*I(gqpHv>XHgXm-9-v%F;fjcc_-j*H1eHR;aFJeqG8~p1+a7Z>IP~n%!c3H>M|V zz%+8~Blq*pmh;iecN?h18yB6R?kqoN$srz2-(hZLen08`#mh=H_n#KJd^4b$Nm&Y& zMo5-RDv(6QaY*Qo@bJMefwIk(x78CsUOp6xflok(cmVXO7I4*>)6Q4+9SmuZ%D%gz z$2EVN>Uy!?AngG2$Hh1M67TOsiWxD;9bF@~n_s3}S0pjGNJ&R`tN*l4w`q5l#qcui zX7BYP$?}G*n>6`h`lyX#RAzb7FNfQ>7%sFO=jF&feb)hJ#U$;2A9ALOKG|5+uZuOx>@O*g5SbNW?!<+;E%1DPf_uVuTx>b?E z#+c)ExjA}+MoLLpx_1?{wqLzw7(=B8ZA~lAXmaYx8$9>$+`VDZhupL|m8p}he+Xn{3v6Q4go8I0X5iC4Ppq+j(?WrPt_as(}OWgEa zVIoNNQ7Z+j*=aWXGDoM>TKn9h4ymp_?!?t}EYQ;JNQnBukY87A`WRWnF}T|vKyW{K zMu7a|?Rt3Isx4F4GFCp6L&6A4#EYTey|WVQL9MruRsDSywhO(I{%~Dl8Fp^PHOk%G zMd-0;RP2GrB;d?wwmHOJJ}hgbGyu3iAF)Ql1}5zfBN z%+0R+Zl0W%m-ke4@vQ$*u#k(f#S00sY%u%tYR!^Y;~J6>QZ$Quw6E6&ELewKMiVq} z3%#;_V=U$3*wRGDPI2~!rS(}JUDt=EJ|(BR=bQ=lvnbrkK3gUria8)#IJ!4ZR#wKoGdlk6 z&mJs;p^w7_**>hKcgaokQ=c}N9(f!2IrG;v4;{y_Ge#oE|MB*vb&jaeUPWY4NfTUd zPj9&S_X`9Ub^x3@_$EYvdYb}*(80O-FZHd~)B0|cH>lH}(jfQfWRGb`3eE+sa6<(_ z(LB8Ebq1e9Klb#-q9lZ|{P8YDjtAHfGNuji1iX%r-Y|u7Rs_W`UJV50$Ax_-2vA-r z0Aax^f%LEc`_=!SVY)*pn)wn4y!_%ANTE-`zs?e(yA2wexwl&B=<1%NQuE=anFiJ1 z{?G5oy&9DCclEEn(6EnJJr47Nx`&X$NjK2C9s6WJGKoOHVUfEZee!0PTJ=Qe_qohe zBBfa>H7rN+7!stl2}XJ| z^n4Rw^;|+DUwZrYlaM_DE0UNm6FXDoI3r)tRW={6&INzSJ`17L6P#wZ*SEM%7l6Zt zr%pXcr7u#^7p2~=Mb8Dgw!grd6}SrHRZHTQa+lUYxrR1&Lc>v2-4;`qU})h6clJ5@ zu^xi+AB!&djMy<99eoFfRJ0hZ`ZmEdmU6#-Q@tSH_M@u93ZFc?gY#j+M-BnnjQZ3E zOA&Qy7GYwO?uq`%lVNtd9@aNBoK`!Cfh6W8nX=+I#*3g_Zpi?Pr?Ii?AEiUDc5fp} zB3)4D#wB9ZyfR2Php4}Z{0BUQjoQcw8nL=TMPLZ;A_g$2ycU6ep6dV`zt#bCn zAJag{Z9%`kTO9QCr|=~`?Jl)VDDOB#1|6kNo`C7roreAiVMn2Ws3)VQ098_Z zy3>z-Y-aQWU>9EyvWePY0IcwYV=<{9g?wOCufW3c_xx8ZoB|ODnw3X>>}kIiSX2P6 zO1OTV)4nw$zG)2bO_No)Spxk1!9=iyJ*x&w_j5{Y>@Rfo0yFHvgCsJS!8%Jn=C*^w zqv!2v_0d;LNyYTZ!3fW%AW8|kC48}5dKruqFhRi3h*WV&=qxf&wt}`bQq?0B)bnJl z<-w|*wT)m$W`mz6VELf4W)_t%r~pqbB|j`dnEw9%Z9k)-~H4Sh{mZscMrOP z^Qb=e^~oHRQ75rckujS|sQ^G#%WgzTrU+&(F761_l-HuE15!NeG)y5ujRoOo!*8=Z z>xzolz zK1FyAgB47uc3(9Tpoxfx1fjTkFUMVqxqZ_jvo(lJq_SLy;#;9%Q7mRJdNb33`jJCG zY^O9#eNqjLXb{@DEU~ss>)W8}*qQn*OmhVVao^J3&#P{CJIOE$hra{&CSu zXbd8r)uB1rgUeX%h;V9x??-!nSwUw!=>80vRdRazd!|ZXjtg>PlsP-9`@#P&0V#+Kzl?{QyA*Z22X zo)Uolt`MAmRylcDvz{`+P=^_!^)G=+-Ab;@_*7Z}cvP}S=G!tMQq!BV-h$%T* zP5C4FgA?$58^9WhM4hp*PubXSrgYu;oHj)e)eI}-DqP z*O33{mCw{%-bUSsX0Y#n^;im;7K5b0mD5uy$BpYA#PpiOMIbFAro4uee`8(UBNV7|^k0aPR$`2A zG7MNgF>(|Ad$DV&a^&LE+&hHaH7ygyl??{p}0xQMJxg~a1QHy@fFF_?!< zFsO86cF<;r<4|-yefI1KM6d5^YNjNn=jAf7!sgY*IJUk1eFKCfBoSg+`E<E*?oXg%t?qq`PT`h^8^=#YKZ-*;gc*sU($-@4SpHor(4&Sb&}} ziH+bL zop!(|nM7KCm-bVO9X720-OMVVcRy-j5sNWE8OLh>YX%=O$mHnE32zGtq*Z^4KLE>mdxpp80e?|39rTk_m3I29DLMpV_IT^0e?28Y_< zHhX`U&zvhcrF?KtikR1nL92v+v^N&8D|WyGYX8H6Ok&TavFp(kP9araDEySvNH3ar zS_JT}OGQArguAo*%FGLxr9LxX{1%SNh0*M~)q%d?u0GpykE|O!x~%!jJbk{BPNLd% zm<1W4qRJ#~S0t2$(NbP2oUtZIDMJcHIJ0e%uZVTWd&vn22mBTW&5J4!Cxl_d2lAI| ze|&f{?lHOgtShsZ3Al$cZ?Z$t%2$<{@X(c8>=)(1XPNW9X`4|kbY2+`_GrgKx&+fCQRD?BXjCoXmE8a@I!(^B z_PO#9@wS0>e0C-XC&>VJQxTh%vvG-uq7YRo4!IY|1Fh-CgmaL;ud<2;@q`G1psjP1 z%1ADP{<~c4I)l+)6(JwT Date: Fri, 1 Dec 2017 15:11:28 +0530 Subject: [PATCH 051/131] Add files via upload --- search/time_complexity_graph.png | Bin 0 -> 29803 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 search/time_complexity_graph.png diff --git a/search/time_complexity_graph.png b/search/time_complexity_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..e6acf69a9d84a59ff44689d4091f7e1305bf64e7 GIT binary patch literal 29803 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 Date: Fri, 1 Dec 2017 15:27:12 +0530 Subject: [PATCH 052/131] create polynomial addition using linked lists --- .../polynomial_addition_using_linked_lists.c | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 Linked_Lists/polynomial_addition_using_linked_lists.c diff --git a/Linked_Lists/polynomial_addition_using_linked_lists.c b/Linked_Lists/polynomial_addition_using_linked_lists.c new file mode 100644 index 000000000..8341be090 --- /dev/null +++ b/Linked_Lists/polynomial_addition_using_linked_lists.c @@ -0,0 +1,98 @@ +#include +#include +#define SIZE 100 + +typedef struct Node{ + int coeff; + int power; + Node* next; +}ll; +void create_poly(int x,int y, ll** poly) +{ + ll* temp=*poly; + if(temp==NULL) + { + ll* new_node=(ll*)(malloc(sizeof(ll))); + new_node->coeff=x; + new_node->power=y; + new_node->next=NULL; + *poly=new_node; + } + else + { + ll* new_node=(ll*)(malloc(sizeof(ll))); + new_node->coeff=x; + new_node->power=y; + new_node->next=temp; + *poly=new_node; + + } + } + + void show_poly(ll* temp) + { + while(temp!=NULL) + { if(temp->next==NULL) + printf("%dx^%d",temp->coeff,temp->power); + else + printf("%dx^%d+ ",temp->coeff,temp->power); + temp=temp->next; + } + } + + void add_poly(ll* poly1,ll* poly2,ll** poly) + { + + ll* temp=(ll*)(malloc(sizeof(ll))); + temp->next=NULL; + *poly=temp; + while(poly1&& poly2) + { + if(poly1->power>poly2->power) + { + temp->coeff=poly1->coeff; + temp->power=poly1->power; + poly1=poly1->next; + } + else if(poly1->powerpower) + { + temp->coeff=poly2->coeff; + temp->power=poly2->power; + poly2=poly2->next; + } + else //if(poly1->power==poly2->power) + { + temp->coeff=poly1->coeff+poly2->coeff; + temp->power=poly2->power; + poly2=poly2->next; + poly1=poly1->next; + } + if(poly1&&poly2){temp->next=(ll*)(malloc(sizeof(ll))); + temp=temp->next; + temp->next=NULL; } +} + + + } + +int main() +{ + ll* poly1=NULL; + ll* poly2=NULL; + ll* poly=NULL; + //Creating the first polynomial + create_poly(4,0,&poly1); + create_poly(3,1,&poly1); + create_poly(5,2,&poly1); + create_poly(9,0,&poly2); + create_poly(5,1,&poly2); + create_poly(8,3,&poly2); + show_poly(poly1); + printf("\n"); show_poly(poly2); + printf("\n"); + add_poly(poly1,poly2,&poly); + show_poly(poly); + + + +} From ce0f4bdc8bc0c88581e7d51aee8690b4c1115176 Mon Sep 17 00:00:00 2001 From: ADIL MAHMOOD Date: Fri, 1 Dec 2017 15:45:59 +0530 Subject: [PATCH 053/131] updated level_order_traversal --- BInary_Tree/level_order_traversal.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/BInary_Tree/level_order_traversal.c b/BInary_Tree/level_order_traversal.c index 1bbf80d26..acf9569de 100644 --- a/BInary_Tree/level_order_traversal.c +++ b/BInary_Tree/level_order_traversal.c @@ -1,6 +1,10 @@ +/*C programme for Level Order Traversal of a Binary Search Tree + Approach- Recursive*/ + #include #include -//////////////////////////////////////////////////// +/*Creating the structure of binary tree node having data amd pointers to left + and right child*/ typedef struct Node { int data; @@ -8,12 +12,12 @@ typedef struct Node struct Node* right; }T; -/////////////////////////////////////////////////// +//Function Prototypes T* newnode(int); void LevelOrder(T*); T* printGivenLevel(T*,int); int height(T*); -/////////////////////////////////////////////////// + int main() { T* root=newnode(1);//Creating the tree @@ -25,7 +29,7 @@ int main() LevelOrder(root); } - +//Function to allocates a new node, and initiales the left and right child with NULL T* newnode(int value) { T* temp=(T*)malloc(sizeof(T)); @@ -35,14 +39,15 @@ T* newnode(int value) return temp; } - +//Function that drives the level order traversal of the tree void LevelOrder(T* root) { int level; for(level=1;level<=height(root);level++) {printGivenLevel(root,level);} } - +/*Computes the height of the tree, which is the length of path from the root to + to the deepest leaf node*/ int height(T* root) { if(root==NULL) @@ -53,6 +58,7 @@ int height(T* root) return lh>rh?lh+1:rh+1; } +//Prints the nodes in each level of the tree T* printGivenLevel(T* root,int level) { if(root==NULL)return NULL; From fb41d16c9dc5e4f3cdde2e3816a01d794959a915 Mon Sep 17 00:00:00 2001 From: ADIL MAHMOOD Date: Fri, 1 Dec 2017 15:46:53 +0530 Subject: [PATCH 054/131] Delete lowest_common_ancestor.c --- BInary_Tree/lowest_common_ancestor.c | 66 ---------------------------- 1 file changed, 66 deletions(-) delete mode 100644 BInary_Tree/lowest_common_ancestor.c diff --git a/BInary_Tree/lowest_common_ancestor.c b/BInary_Tree/lowest_common_ancestor.c deleted file mode 100644 index 81192f6b7..000000000 --- a/BInary_Tree/lowest_common_ancestor.c +++ /dev/null @@ -1,66 +0,0 @@ -#include -#include - -typedef struct Node -{ - int data; - struct Node* left; - struct Node* right; - -}T; -T* newnode(int ); -int FindLCA(T*, int, int); -bool findpath(T*, vector;int ); -int main() -{ - T* root=newnode(1); - root->left=newnode(3); - root->right=newnode(5); - root->left->left=newnode(6); - root->right->right=newnode(4); - root->left->right=newnode(12); - cout<path1,path2; - if(!findpath(root,path1,n1)&&!findpath(root,path2,n2)) - return -1; - int i; - for(int i=0;ipath1;int n) -{ - if(root==NULL)return false; - if(root->data==key)return root; - - if((root-T* newnode(int value) -{ - T* temp=(T*)malloc(sizeof(T)); - temp->data=value; - temp->left=NULL; - temp->right=NULL; - return temp; - -}>left&&findpath(root,path1,n))||(root->right && findpath(root,path2,int n))) - return true; - - path.pop_back(); - return false; -} - -T* newnode(int value) -{ - T* temp=(T*)malloc(sizeof(T)); - temp->data=value; - temp->left=NULL; - temp->right=NULL; - return temp; - -} From 889502accdda9e6980a13946f89de0c77c420870 Mon Sep 17 00:00:00 2001 From: ADIL MAHMOOD Date: Fri, 1 Dec 2017 15:47:14 +0530 Subject: [PATCH 055/131] Delete polynomial_addition_using_linked_lists.c --- .../polynomial_addition_using_linked_lists.c | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 Linked_Lists/polynomial_addition_using_linked_lists.c diff --git a/Linked_Lists/polynomial_addition_using_linked_lists.c b/Linked_Lists/polynomial_addition_using_linked_lists.c deleted file mode 100644 index 8341be090..000000000 --- a/Linked_Lists/polynomial_addition_using_linked_lists.c +++ /dev/null @@ -1,98 +0,0 @@ -#include -#include -#define SIZE 100 - -typedef struct Node{ - int coeff; - int power; - Node* next; -}ll; -void create_poly(int x,int y, ll** poly) -{ - ll* temp=*poly; - if(temp==NULL) - { - ll* new_node=(ll*)(malloc(sizeof(ll))); - new_node->coeff=x; - new_node->power=y; - new_node->next=NULL; - *poly=new_node; - } - else - { - ll* new_node=(ll*)(malloc(sizeof(ll))); - new_node->coeff=x; - new_node->power=y; - new_node->next=temp; - *poly=new_node; - - } - } - - void show_poly(ll* temp) - { - while(temp!=NULL) - { if(temp->next==NULL) - printf("%dx^%d",temp->coeff,temp->power); - else - printf("%dx^%d+ ",temp->coeff,temp->power); - temp=temp->next; - } - } - - void add_poly(ll* poly1,ll* poly2,ll** poly) - { - - ll* temp=(ll*)(malloc(sizeof(ll))); - temp->next=NULL; - *poly=temp; - while(poly1&& poly2) - { - if(poly1->power>poly2->power) - { - temp->coeff=poly1->coeff; - temp->power=poly1->power; - poly1=poly1->next; - } - else if(poly1->powerpower) - { - temp->coeff=poly2->coeff; - temp->power=poly2->power; - poly2=poly2->next; - } - else //if(poly1->power==poly2->power) - { - temp->coeff=poly1->coeff+poly2->coeff; - temp->power=poly2->power; - poly2=poly2->next; - poly1=poly1->next; - } - if(poly1&&poly2){temp->next=(ll*)(malloc(sizeof(ll))); - temp=temp->next; - temp->next=NULL; } -} - - - } - -int main() -{ - ll* poly1=NULL; - ll* poly2=NULL; - ll* poly=NULL; - //Creating the first polynomial - create_poly(4,0,&poly1); - create_poly(3,1,&poly1); - create_poly(5,2,&poly1); - create_poly(9,0,&poly2); - create_poly(5,1,&poly2); - create_poly(8,3,&poly2); - show_poly(poly1); - printf("\n"); show_poly(poly2); - printf("\n"); - add_poly(poly1,poly2,&poly); - show_poly(poly); - - - -} From 7975a526ac2fd9ad64ef97d20ecda1ff0d6fb516 Mon Sep 17 00:00:00 2001 From: sgrG24 Date: Fri, 1 Dec 2017 16:13:21 +0530 Subject: [PATCH 056/131] Basic Linklist --- Linklist/Linklist.cpp | 385 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 385 insertions(+) create mode 100755 Linklist/Linklist.cpp diff --git a/Linklist/Linklist.cpp b/Linklist/Linklist.cpp new file mode 100755 index 000000000..db742e66b --- /dev/null +++ b/Linklist/Linklist.cpp @@ -0,0 +1,385 @@ +//Pointer based implementation of Linklist +//All basic operations. +#include +using namespace std; +#include +struct node{ + int d; + node* next; +}; + + +class linklist{ + private: + node* start; + + public: + linklist(); + void append(int ); + void add_beg(int ); + void add_middle(int); + void add_after(int , int ); + void display(); + void del_middle(); + int count(); + void del(int ); + void sort(); + linklist reverse(); + void merge(linklist, linklist); +}; +//Default constructor +linklist :: linklist() +{ + start= NULL; +} + +//Add element at last of the list +void linklist::append(int x) +{ + node* temp = new node; + temp->d=x; + temp->next= NULL; + + if(start== NULL) + { + start= temp; + } + else + { + node* t; + t= start; + + while(t->next!= NULL) + { + t=t->next; + } + + t->next= temp; + } +} + +//Add element at the begining of the list +void linklist::add_beg(int x) +{ + node* temp= new node; + temp->d= x; + temp->next= NULL; + + if(start==NULL) + { + start= temp; + } + else + { + temp->next= start; + start= temp; + } +} + +//Add element at the middle of the list +void linklist::add_middle(int x) +{ + int count=0; + int n; + node* t = start; + node* temp= new node; + temp->d=x; + temp->next=NULL; + while(t!=NULL) + { + count++; + t=t->next; + } + t=start; + if(count%2==0) + n=count/2; + else + n=((count/2)+1); + if(n==0) + { + start=temp; + return; + } + for(int i=1;inext; + } + temp->next=t->next; + t->next=temp; + return; +} + +//Add element after specific position +void linklist::add_after(int n, int x) +{ + node* temp= new node; + temp->d=x; + temp->next=NULL; + + node* t = start; + int count=0; + while(t!= NULL) + { + count++; + t=t->next; + } + t=start; + + if(n>count) + { + cout<<"Invalid Position To Add Data"<next; + } + + temp->next= t->next; + t->next= temp; + } +} + +//Display all the contains of linklist. +void linklist::display() +{ + node* t; + t= start; + + while(t!= NULL) + { + cout<d<next; + } +} + +//Delete the middle element from the list +void linklist::del_middle() +{ + int n, coun=0; + node* t= start; + coun=count(); + if(coun%2==0) + n= coun/2; + else + n=(coun/2)+1; + if(n==0) + { + cout<<"List is empty"; + return; + } + if(n==1&& coun==1) + { + delete start; + start=NULL; + return; + } + if(n==1&& coun==2) + { + delete start; + start=t->next; + return; + } + else + { + for(int i=1;inext; + } + node* t1=t->next; + t->next=t->next->next; + delete t1; + } + } + +//Count the elements in the linklist. +int linklist::count() +{ + int count=0; + node* temp= start; + while(temp!=NULL) + { + count++; + temp=temp->next; + } + return count; +} + +//Delete a specific element from the list. +void linklist::del(int x) +{ + int flag=0; + node* temp = start; + node* t1; + if(start->d== x) + { + t1=start->next; + delete start; + start= t1; + } + else + { + while(temp->next!=NULL) + { + if(temp->next->d== x) + { + t1= temp->next->next; + delete temp->next; + temp->next = t1; + flag=1; + break; + } + + temp= temp->next; + } + if(flag==0) + cout<<"Error: Element Not Found"<d>t->d) + { + swap(cnode->d,t->d); + } + t=t->next; + } + temp=temp->next; + } +} + +//Merge two sorted linklist. +void linklist::merge(linklist h, linklist k) +{ + node* t1 = h.start; + node* t2 = k.start; + while(t1!= NULL && t2!= NULL) + { + if(t1->d < t2->d) + { + node* temp = new node; + temp->d= t1->d; + temp->next= NULL; + if(start== NULL) + { + start = temp; + } + else + { + node* t; + t= start; + while(t->next!= NULL) + { + t=t->next; + } + t->next= temp; + } + t1= t1->next; + } + else + { + node* temp = new node; + temp->d= t2->d; + temp->next= NULL; + if(start== NULL) + { + start = temp; + } + else + { + node* t; + t= start; + while(t->next!= NULL) + { + t=t->next; + } + t->next= temp; + } + t2= t2->next; + } + } + while(t1!=NULL) + { + node* temp = new node; + temp->d= t1->d; + temp->next= NULL; + node* t; + t= start; + while(t->next!= NULL) + { + t=t->next; + } + t->next= temp; + t1= t1->next; + } + + while(t2!=NULL) + { + node* temp = new node; + temp->d= t2->d; + temp->next= NULL; + node* t; + t= start; + while(t->next!= NULL) + { + t=t->next; + } + t->next= temp; + t2=t2->next; + } + +} + +//Reverse the elements of the linklist +linklist linklist::reverse() +{ + node* t=start; + linklist temp; + for(int i=1;i<=count();i++) + { + temp.add_beg(t->d); + t=t->next; + } + return linklist; +} + +//Main function +int main() +{ + linklist l; + l.append(5); + l.append(5455); + l.append(645); + l.append(545); + l.add_beg(56); + l.add_beg(898); + l.add_after(5, 23); + l.add_after(2, 56); + l.del(898); + l.del(545); + l.add_middle(45); + l.del_middle(); + + l.display(); + l=l.reverse(); + cout<<"Reversed linklist data"< Date: Fri, 1 Dec 2017 16:16:13 +0530 Subject: [PATCH 057/131] Update Linklist.cpp --- Linklist/Linklist.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Linklist/Linklist.cpp b/Linklist/Linklist.cpp index db742e66b..805702a9c 100755 --- a/Linklist/Linklist.cpp +++ b/Linklist/Linklist.cpp @@ -2,7 +2,6 @@ //All basic operations. #include using namespace std; -#include struct node{ int d; node* next; From 6dda26a1b89a2548410297b3fed27fa7c6346c72 Mon Sep 17 00:00:00 2001 From: ADIL MAHMOOD Date: Fri, 1 Dec 2017 18:58:56 +0530 Subject: [PATCH 058/131] created duplicates_removal_from_unsorted linked_ll --- .../Removing_duplicates_from_Linked_List.cpp | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 Linked-List/Removing_duplicates_from_Linked_List.cpp diff --git a/Linked-List/Removing_duplicates_from_Linked_List.cpp b/Linked-List/Removing_duplicates_from_Linked_List.cpp new file mode 100644 index 000000000..477ee5542 --- /dev/null +++ b/Linked-List/Removing_duplicates_from_Linked_List.cpp @@ -0,0 +1,102 @@ +/*Removing Duplicate Elements from an unsorted linked list + Technique Used:Maintain a hash table of data values. We simply iterate + through the linked list and add the values to the hash table. If we + encounter a duplicate element we simply remove it by changing pointers. + Time Complexity-O(n), where n is the total number of elements in the + linked list.*/ + +#include +using namespace std; + +struct Node{ + int data; + Node* next; +}; + +Node* head=NULL;//Head is declared globally to avoid repeated passing between funcitons + +/*Hash Table to keep track of data in linked list. + The first and second column will keep track of postive + and negative numbers respectively*/ +bool hasht[1000001][2]={0}; + +void Insert(int value)//Function to insert a node at the beginning of the list +{ + Node* newnode=new Node; + newnode->data=value; + newnode->next=head; + head=newnode; +} +void print() +{ + Node* temp=head; + while(temp->next!=NULL)//Printing upto the second last element to avoid '->' at the end + { + cout<data<<"->"; + temp=temp->next; + } + cout<data<<"\n"; +} + +void Remove_Duplicates() +{ + Node* prev=NULL; + Node* temp=head; + + while(temp!=NULL)//Traversing upto the last node in the linked list + { + if(temp->data>=0)//Checking for +ve numbers + { + if(hasht[temp->data][0]==1)//If the number already visited + prev->next=temp->next; //Delete the number pointing prev to next of current(temp) + else + { + hasht[temp->data][0]=1; //If not visited, mark visited by making the entry to 1 in the hash table + prev=temp; + } + temp=temp->next; + } + else{ //Block for negative numbers + {if(hasht[abs(temp->data)][1]==1) + prev->next=temp->next; + else + { + hasht[abs(temp->data)][1]=1; + prev=temp; + } + temp=temp->next; + } + + } +} +} + + +int main() +{ + //Creating the linked list + Insert(5); + Insert(4); + Insert(7); + Insert(5); + Insert(4); + Insert(5); + Insert(53); + Insert(8); + Insert(45); + Insert(52); + Insert(6); + Insert(100); + Insert(8); + Insert(5); + Insert(25); + Insert(6); + cout<<"Linked List with duplicates:::\n"; + print();//Printing the linked list before removing the duplicate elements + + Remove_Duplicates();//Calling the remove duplicates function + cout<<"\nLinked Lists after duplicates removed:::\n"; + print();//Calling the print function after deleting redundant elements + + } + From 96851086e18afc0580ef61cfc13f6d794e6a0430 Mon Sep 17 00:00:00 2001 From: ADIL MAHMOOD Date: Fri, 1 Dec 2017 19:01:25 +0530 Subject: [PATCH 059/131] corrected some comments --- Linked-List/Removing_duplicates_from_Linked_List.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Linked-List/Removing_duplicates_from_Linked_List.cpp b/Linked-List/Removing_duplicates_from_Linked_List.cpp index 477ee5542..9cdc9abc0 100644 --- a/Linked-List/Removing_duplicates_from_Linked_List.cpp +++ b/Linked-List/Removing_duplicates_from_Linked_List.cpp @@ -48,7 +48,7 @@ void Remove_Duplicates() if(temp->data>=0)//Checking for +ve numbers { if(hasht[temp->data][0]==1)//If the number already visited - prev->next=temp->next; //Delete the number pointing prev to next of current(temp) + prev->next=temp->next; //Delete the element by pointing prev to next of current(temp) else { hasht[temp->data][0]=1; //If not visited, mark visited by making the entry to 1 in the hash table From d12deb4df0afd479f5cc3ebdface0e1160664b75 Mon Sep 17 00:00:00 2001 From: heisenberg-2505 <2015csb1018@iitrpr.ac.in> Date: Fri, 1 Dec 2017 19:19:31 +0530 Subject: [PATCH 060/131] The Knapsack problem. --- Knapsack/a.out | Bin 0 -> 13616 bytes Knapsack/knapsack.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100755 Knapsack/a.out create mode 100644 Knapsack/knapsack.cpp diff --git a/Knapsack/a.out b/Knapsack/a.out new file mode 100755 index 0000000000000000000000000000000000000000..c17d4090b3fcb72ed1f407aa03a0b3b7d7d3c4b5 GIT binary patch literal 13616 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 literal 0 HcmV?d00001 diff --git a/Knapsack/knapsack.cpp b/Knapsack/knapsack.cpp new file mode 100644 index 000000000..64002eea4 --- /dev/null +++ b/Knapsack/knapsack.cpp @@ -0,0 +1,44 @@ +// This C++ program solves the knapsack problem. A very famous Dynamic Programming problem. +#include +using namespace std; +typedef long long ll; + +ll knapsack(ll V[], ll W[], ll n, ll maxWeight) +{ + ll K[n + 1][maxWeight + 1]; // Declaring the table for dynamic programming. + for(ll i = 0; i <= n; i++) + { + for(ll j = 0; j <= maxWeight; j++) + { + if(i == 0 || j == 0) + K[i][j] = 0; //Covering the base cases. + + else if(W[i - 1] <= j)// If the weight of the element is less than the capacity. + K[i][j] = max(V[i - 1] + K[i - 1][j - W[i - 1]], K[i - 1][j]);// Then take the maximum of the value of this element or the leave this element. + + else + K[i][j] = K[i - 1][j]; // If the weight of the element is more than the capacity, then leave this element. + } + } + return K[n][maxWeight]; +} + +int main() +{ + ll n; + cout << "Enter the value of n (The number of elements)." << endl; + cin >> n; + ll V[n], W[n]; + cout << "Enter " << n << " space separated integers denoting the values." << endl; + for(ll i = 0; i < n; i++) + cin >> V[i]; + cout << "Enter " << n << " space separated integers denoting the weights." << endl; + for(ll i = 0; i < n; i++) + cin >> W[i]; + ll maxWeight; + cout << "Enter the value of the capacity of the knapsack" << endl; + cin >> maxWeight; + cout << "The maximum total value obtained with the following knapsack" << endl; + cout << knapsack(V, W, n, maxWeight) << endl; + return 0; +} \ No newline at end of file From 0dc04b6a570e984ea65b6c47ccb0b19c95b16a0e Mon Sep 17 00:00:00 2001 From: sgrG24 Date: Fri, 1 Dec 2017 19:52:31 +0530 Subject: [PATCH 061/131] Add comments in each section --- Linklist/Linklist.cpp | 177 +++++++++++++++++++++++++++--------------- 1 file changed, 115 insertions(+), 62 deletions(-) diff --git a/Linklist/Linklist.cpp b/Linklist/Linklist.cpp index 805702a9c..9524b63db 100755 --- a/Linklist/Linklist.cpp +++ b/Linklist/Linklist.cpp @@ -29,17 +29,24 @@ class linklist{ //Default constructor linklist :: linklist() { + //Initialize start with NULL start= NULL; } //Add element at last of the list void linklist::append(int x) { + //Creating the new node node* temp = new node; + + //assigning the data in the node temp->d=x; + + //putting next of the node to NULL temp->next= NULL; - if(start== NULL) + //If list is empty + if(start== NULL) { start= temp; } @@ -48,89 +55,121 @@ void linklist::append(int x) node* t; t= start; + //this will find the pointer to last node of the list while(t->next!= NULL) { t=t->next; } + //update the last node's next pointer with the pointer to the new node t->next= temp; } } //Add element at the begining of the list void linklist::add_beg(int x) -{ +{ + //creating new node node* temp= new node; + + //assigning the data in the node temp->d= x; + + //putting nexy of the node to the NULL temp->next= NULL; + //If list is empty if(start==NULL) { start= temp; } else { + //update the next of current node with start temp->next= start; + + //updating start start= temp; } } +//returns the number of nodes in the linklist. +int linklist::count() +{ + int count=0; + + //create temporary node + //assigned it with start + node* temp= start; + + //traverse the whole list + while(temp!=NULL) + { + //updating count + count++; + //updating temp + temp=temp->next; + } + return count; +} + //Add element at the middle of the list void linklist::add_middle(int x) { - int count=0; + //total number of nodes in the list + int len=count(); + int n; node* t = start; + + //creating new node and assigning the values node* temp= new node; temp->d=x; temp->next=NULL; - while(t!=NULL) - { - count++; - t=t->next; - } - t=start; - if(count%2==0) - n=count/2; + + //if list has even numbers of node, then add it at len/2 + if(len%2==0) + n=len/2; else - n=((count/2)+1); + n=((len/2)+1); + + //if the list is empty if(n==0) { start=temp; return; } + + //traversing to the n'th node for(int i=1;inext; } + //updating temp temp->next=t->next; t->next=temp; return; } //Add element after specific position -void linklist::add_after(int n, int x) +void linklist::add_after(int pos, int x) { + //creating new node and assigning values in it node* temp= new node; temp->d=x; temp->next=NULL; node* t = start; - int count=0; - while(t!= NULL) - { - count++; - t=t->next; - } - t=start; + int len=count(); - if(n>count) + //if entered position is greater then number of node present in list + if(pos>len) { cout<<"Invalid Position To Add Data"<next; } @@ -156,32 +195,43 @@ void linklist::display() //Delete the middle element from the list void linklist::del_middle() { - int n, coun=0; + int n, len=0; node* t= start; - coun=count(); - if(coun%2==0) - n= coun/2; + + //counting total number of nodes + len=count(); + + //if even numbers of nodes are there in the list + if(len%2==0) + n= len/2; else - n=(coun/2)+1; + n=(len/2)+1; + + //if list is empty if(n==0) { cout<<"List is empty"; return; } - if(n==1&& coun==1) + + //if there is only 1 element i.e. only start node is there + if(n==1&& len==1) { delete start; start=NULL; return; } - if(n==1&& coun==2) + + //if 2 nodes are present in the list + if(n==1&& len==2) { delete start; start=t->next; return; - } - else + } + else //more than two nodes are there in the list { + //traversed to middle node for(int i=1;inext; @@ -192,25 +242,17 @@ void linklist::del_middle() } } -//Count the elements in the linklist. -int linklist::count() -{ - int count=0; - node* temp= start; - while(temp!=NULL) - { - count++; - temp=temp->next; - } - return count; -} + //Delete a specific element from the list. void linklist::del(int x) -{ +{ int flag=0; + //creating temporary node node* temp = start; node* t1; + + //if start node is that node if(start->d== x) { t1=start->next; @@ -219,6 +261,7 @@ void linklist::del(int x) } else { + //traversing to that node while(temp->next!=NULL) { if(temp->next->d== x) @@ -232,6 +275,7 @@ void linklist::del(int x) temp= temp->next; } + //if the value is not present in the list if(flag==0) cout<<"Error: Element Not Found"<d>t->d) + if(current_node->d>t->d) { - swap(cnode->d,t->d); + swap(current_node->d,t->d); } t=t->next; } @@ -260,11 +305,14 @@ void linklist::sort() } } -//Merge two sorted linklist. +//takes two sorted list in increasing order and merge them. void linklist::merge(linklist h, linklist k) { + //creating two node pointer and initialized with it by start pointers node* t1 = h.start; node* t2 = k.start; + + //traversing till the end of any list while(t1!= NULL && t2!= NULL) { if(t1->d < t2->d) @@ -310,6 +358,8 @@ void linklist::merge(linklist h, linklist k) t2= t2->next; } } + + //merge remaining nodes of list 1 if any while(t1!=NULL) { node* temp = new node; @@ -324,7 +374,8 @@ void linklist::merge(linklist h, linklist k) t->next= temp; t1= t1->next; } - + + //merge remaining nodes of list 2 if any while(t2!=NULL) { node* temp = new node; @@ -345,14 +396,16 @@ void linklist::merge(linklist h, linklist k) //Reverse the elements of the linklist linklist linklist::reverse() { + //reverse the linklist node* t=start; linklist temp; for(int i=1;i<=count();i++) { + //adding the elements from the last to the new linklist temp.add_beg(t->d); t=t->next; } - return linklist; + return temp; } //Main function @@ -360,16 +413,16 @@ int main() { linklist l; l.append(5); - l.append(5455); - l.append(645); - l.append(545); + l.append(54); + l.append(64); + l.append(55); l.add_beg(56); - l.add_beg(898); + l.add_beg(88); l.add_after(5, 23); - l.add_after(2, 56); - l.del(898); - l.del(545); - l.add_middle(45); + l.add_after(2, 6); + l.del(98); + l.del(45); + l.add_middle(5); l.del_middle(); l.display(); From 92ad2491035e73efc98dd73801eacaea09a3d171 Mon Sep 17 00:00:00 2001 From: Sagar Gupta <31286502+sgrG24@users.noreply.github.com> Date: Fri, 1 Dec 2017 20:27:43 +0530 Subject: [PATCH 062/131] Update Linklist.cpp --- Linklist/Linklist.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Linklist/Linklist.cpp b/Linklist/Linklist.cpp index 9524b63db..ba2b4c0e1 100755 --- a/Linklist/Linklist.cpp +++ b/Linklist/Linklist.cpp @@ -247,7 +247,6 @@ void linklist::del_middle() //Delete a specific element from the list. void linklist::del(int x) { - int flag=0; //creating temporary node node* temp = start; node* t1; @@ -261,6 +260,7 @@ void linklist::del(int x) } else { + int flag=0; //traversing to that node while(temp->next!=NULL) { @@ -286,11 +286,12 @@ void linklist::sort() { node* temp =start; int len= count(); - node* current_node; + node* t; //sorting whole list while(len--) { + node* current_node; current_node= temp; t = temp; while(t!=NULL) From 684cfbab28d9e6ca3ecfaa00d32f98b0bd654536 Mon Sep 17 00:00:00 2001 From: saketh Date: Fri, 1 Dec 2017 20:38:15 +0530 Subject: [PATCH 063/131] Code added for bubble sort in c++ --- sort/bubble_sort.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sort/bubble_sort.cpp diff --git a/sort/bubble_sort.cpp b/sort/bubble_sort.cpp new file mode 100644 index 000000000..42634a7ce --- /dev/null +++ b/sort/bubble_sort.cpp @@ -0,0 +1,31 @@ +/* Part of Cosmos by OpenGenus Foundation */ +#include +#include +#include + +void bubble_sort(std::vector &v) +{ + for(int i=0; i < v.size(); ++i) + for(int j=i+1; j < v.size(); ++j) + { + if (v[i] > v[j]) + std::swap(v[i],v[j]); + } +} +int main() +{ + std::vector input_array; + std::cout<<"Enter the number of items in the array: "; + int array_size; + std::cin>>array_size; + for(int i=0;i>input_number; + input_array.push_back(input_number); + } + bubble_sort(input_array); + for(auto x :input_array) + std::cout< Date: Fri, 1 Dec 2017 21:06:03 +0530 Subject: [PATCH 064/131] Add files via upload --- interpolation_search.py | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 interpolation_search.py diff --git a/interpolation_search.py b/interpolation_search.py new file mode 100644 index 000000000..3def8b752 --- /dev/null +++ b/interpolation_search.py @@ -0,0 +1,45 @@ +# Python program to implement interpolation search + +# If x is present in arr[0..n-1], then returns +# index of it, else returns -1 +def interpolationSearch(arr, n, x): + # Find indexs of two corners + lo = 0 + hi = (n - 1) + + # Since array is sorted, an element present + # in array must be in range defined by corner + while lo <= hi and x >= arr[lo] and x <= arr[hi]: + # Probing the position with keeping + # uniform distribution in mind. + pos = lo + int(((float(hi - lo) / + ( arr[hi] - arr[lo])) * ( x - arr[lo]))) + + # Condition of target found + if arr[pos] == x: + return pos + + # If x is larger, x is in upper part + if arr[pos] < x: + lo = pos + 1; + + # If x is smaller, x is in lower part + else: + hi = pos - 1; + + return -1 + +arr=[] +n=input("enter array size:") +for i in range(n): + put=input("enter element") + arr.append(put) +arr.sort() +x=input("enter element to be searched") +index = interpolationSearch(arr, n, x) + +if index != -1: + print "Element found" +else: + print "Element not found" + From 484b2d708b384373c97ac1ddc66551c647c54ab5 Mon Sep 17 00:00:00 2001 From: Shivesh Choudhary <32201319+shiveshchoudhary@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:06:51 +0530 Subject: [PATCH 065/131] Delete interpolation_search.py --- interpolation_search.py | 45 ----------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 interpolation_search.py diff --git a/interpolation_search.py b/interpolation_search.py deleted file mode 100644 index 3def8b752..000000000 --- a/interpolation_search.py +++ /dev/null @@ -1,45 +0,0 @@ -# Python program to implement interpolation search - -# If x is present in arr[0..n-1], then returns -# index of it, else returns -1 -def interpolationSearch(arr, n, x): - # Find indexs of two corners - lo = 0 - hi = (n - 1) - - # Since array is sorted, an element present - # in array must be in range defined by corner - while lo <= hi and x >= arr[lo] and x <= arr[hi]: - # Probing the position with keeping - # uniform distribution in mind. - pos = lo + int(((float(hi - lo) / - ( arr[hi] - arr[lo])) * ( x - arr[lo]))) - - # Condition of target found - if arr[pos] == x: - return pos - - # If x is larger, x is in upper part - if arr[pos] < x: - lo = pos + 1; - - # If x is smaller, x is in lower part - else: - hi = pos - 1; - - return -1 - -arr=[] -n=input("enter array size:") -for i in range(n): - put=input("enter element") - arr.append(put) -arr.sort() -x=input("enter element to be searched") -index = interpolationSearch(arr, n, x) - -if index != -1: - print "Element found" -else: - print "Element not found" - From f1e5ab30fcde24a86d3ec91a6bac79b47c1a2bcd Mon Sep 17 00:00:00 2001 From: Shivesh Choudhary <32201319+shiveshchoudhary@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:07:36 +0530 Subject: [PATCH 066/131] Add files via upload --- search/interpolation_search.py | 45 ++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 search/interpolation_search.py diff --git a/search/interpolation_search.py b/search/interpolation_search.py new file mode 100644 index 000000000..3def8b752 --- /dev/null +++ b/search/interpolation_search.py @@ -0,0 +1,45 @@ +# Python program to implement interpolation search + +# If x is present in arr[0..n-1], then returns +# index of it, else returns -1 +def interpolationSearch(arr, n, x): + # Find indexs of two corners + lo = 0 + hi = (n - 1) + + # Since array is sorted, an element present + # in array must be in range defined by corner + while lo <= hi and x >= arr[lo] and x <= arr[hi]: + # Probing the position with keeping + # uniform distribution in mind. + pos = lo + int(((float(hi - lo) / + ( arr[hi] - arr[lo])) * ( x - arr[lo]))) + + # Condition of target found + if arr[pos] == x: + return pos + + # If x is larger, x is in upper part + if arr[pos] < x: + lo = pos + 1; + + # If x is smaller, x is in lower part + else: + hi = pos - 1; + + return -1 + +arr=[] +n=input("enter array size:") +for i in range(n): + put=input("enter element") + arr.append(put) +arr.sort() +x=input("enter element to be searched") +index = interpolationSearch(arr, n, x) + +if index != -1: + print "Element found" +else: + print "Element not found" + From f2beb647d797c2d17137529279577f3142262ef1 Mon Sep 17 00:00:00 2001 From: Shivesh Choudhary <32201319+shiveshchoudhary@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:28:54 +0530 Subject: [PATCH 067/131] Delete interpolation_search.py --- search/interpolation_search.py | 45 ---------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 search/interpolation_search.py diff --git a/search/interpolation_search.py b/search/interpolation_search.py deleted file mode 100644 index 3def8b752..000000000 --- a/search/interpolation_search.py +++ /dev/null @@ -1,45 +0,0 @@ -# Python program to implement interpolation search - -# If x is present in arr[0..n-1], then returns -# index of it, else returns -1 -def interpolationSearch(arr, n, x): - # Find indexs of two corners - lo = 0 - hi = (n - 1) - - # Since array is sorted, an element present - # in array must be in range defined by corner - while lo <= hi and x >= arr[lo] and x <= arr[hi]: - # Probing the position with keeping - # uniform distribution in mind. - pos = lo + int(((float(hi - lo) / - ( arr[hi] - arr[lo])) * ( x - arr[lo]))) - - # Condition of target found - if arr[pos] == x: - return pos - - # If x is larger, x is in upper part - if arr[pos] < x: - lo = pos + 1; - - # If x is smaller, x is in lower part - else: - hi = pos - 1; - - return -1 - -arr=[] -n=input("enter array size:") -for i in range(n): - put=input("enter element") - arr.append(put) -arr.sort() -x=input("enter element to be searched") -index = interpolationSearch(arr, n, x) - -if index != -1: - print "Element found" -else: - print "Element not found" - From a5a7cb90f315ba34e04b000902d95af1bf745b68 Mon Sep 17 00:00:00 2001 From: Shivesh Choudhary <32201319+shiveshchoudhary@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:29:25 +0530 Subject: [PATCH 068/131] Add files via upload --- search/interpolation_search.py | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 search/interpolation_search.py diff --git a/search/interpolation_search.py b/search/interpolation_search.py new file mode 100644 index 000000000..d1b836546 --- /dev/null +++ b/search/interpolation_search.py @@ -0,0 +1,46 @@ +# Python program to implement interpolation search + +# If x is present in arr[0..n-1], then returns +# index of it, else returns -1 +def interpolationSearch(): + arr=[] + n=input("enter array size:") + for i in range(n): + put=input("enter element") + arr.append(put) + arr.sort() + x=input("enter element to be searched") + + # Find indexs of two corners + lo = 0 + hi = (n - 1) + + # Since array is sorted, an element present + # in array must be in range defined by corner + while lo <= hi and x >= arr[lo] and x <= arr[hi]: + # Probing the position with keeping + # uniform distribution in mind. + pos = lo + int(((float(hi - lo) / + ( arr[hi] - arr[lo])) * ( x - arr[lo]))) + + # Condition of target found + if arr[pos] == x: + return pos + + # If x is larger, x is in upper part + if arr[pos] < x: + lo = pos + 1; + + # If x is smaller, x is in lower part + else: + hi = pos - 1; + + return -1 + +index = interpolationSearch() + +if index != -1: + print "Element found" +else: + print "Element not found" + From b9af8f448a3be318b9749d6b118cbe8594ed82ed Mon Sep 17 00:00:00 2001 From: Shivesh Choudhary <32201319+shiveshchoudhary@users.noreply.github.com> Date: Fri, 1 Dec 2017 21:36:27 +0530 Subject: [PATCH 069/131] Add files via upload --- search/interpolationsearch.c | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 search/interpolationsearch.c diff --git a/search/interpolationsearch.c b/search/interpolationsearch.c new file mode 100644 index 000000000..bed884e71 --- /dev/null +++ b/search/interpolationsearch.c @@ -0,0 +1,57 @@ +// C program to implement interpolation search +#include + +// If x is present in arr[0..n-1], then returns +// index of it, else returns -1. +int interpolationSearch(int arr[], int n, int x) +{ + // Find indexes of two corners + int lo = 0, hi = (n - 1); + + // Since array is sorted, an element present + // in array must be in range defined by corner + while (lo <= hi && x >= arr[lo] && x <= arr[hi]) + { + // Probing the position with keeping + // uniform distribution in mind. + int pos = lo + (((double)(hi-lo) / + (arr[hi]-arr[lo]))*(x - arr[lo])); + + // Condition of target found + if (arr[pos] == x) + return pos; + + // If x is larger, x is in upper part + if (arr[pos] < x) + lo = pos + 1; + + // If x is smaller, x is in lower part + else + hi = pos - 1; + } + return -1; +} + +// Driver Code +int main() +{ + // Array of items on which search will + // be conducted. + + int n,arr[n]; + scanf("%d",&n); + for(i=0;i Date: Fri, 1 Dec 2017 21:41:06 +0530 Subject: [PATCH 070/131] Delete interpolation_search.py --- search/interpolation_search.py | 46 ---------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 search/interpolation_search.py diff --git a/search/interpolation_search.py b/search/interpolation_search.py deleted file mode 100644 index d1b836546..000000000 --- a/search/interpolation_search.py +++ /dev/null @@ -1,46 +0,0 @@ -# Python program to implement interpolation search - -# If x is present in arr[0..n-1], then returns -# index of it, else returns -1 -def interpolationSearch(): - arr=[] - n=input("enter array size:") - for i in range(n): - put=input("enter element") - arr.append(put) - arr.sort() - x=input("enter element to be searched") - - # Find indexs of two corners - lo = 0 - hi = (n - 1) - - # Since array is sorted, an element present - # in array must be in range defined by corner - while lo <= hi and x >= arr[lo] and x <= arr[hi]: - # Probing the position with keeping - # uniform distribution in mind. - pos = lo + int(((float(hi - lo) / - ( arr[hi] - arr[lo])) * ( x - arr[lo]))) - - # Condition of target found - if arr[pos] == x: - return pos - - # If x is larger, x is in upper part - if arr[pos] < x: - lo = pos + 1; - - # If x is smaller, x is in lower part - else: - hi = pos - 1; - - return -1 - -index = interpolationSearch() - -if index != -1: - print "Element found" -else: - print "Element not found" - From f614e5467f126a5376c703cac08c8325ae497a64 Mon Sep 17 00:00:00 2001 From: nandikeshsingh Date: Sat, 2 Dec 2017 02:01:03 +0530 Subject: [PATCH 071/131] KMP-Algorithm --- .../Knuth-Morris-Pratt_Algorithm.cpp | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 search/string_search/Knuth-Morris-Pratt_Algorithm.cpp diff --git a/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp b/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp new file mode 100644 index 000000000..b7d893443 --- /dev/null +++ b/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp @@ -0,0 +1,78 @@ +//C++ code to find a pattern in a given text using KMP algorithm in linear time. +#include + +using namespace std; + +int main() +{ + string text; + string pattern; + + cout<<"Enter the text : ";//inputting text + cin>>text; + cout<>pattern; + cout<text_length) + { + cout<<"Not Found"< Date: Fri, 1 Dec 2017 22:14:02 +0530 Subject: [PATCH 072/131] Update Knuth-Morris-Pratt_Algorithm.cpp --- search/string_search/Knuth-Morris-Pratt_Algorithm.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp b/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp index b7d893443..8b79eb63f 100644 --- a/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp +++ b/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp @@ -8,11 +8,9 @@ int main() string text; string pattern; - cout<<"Enter the text : ";//inputting text cin>>text; cout<>pattern; cout< Date: Fri, 1 Dec 2017 22:17:02 +0530 Subject: [PATCH 073/131] Update interpolationsearch.c --- search/interpolationsearch.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/search/interpolationsearch.c b/search/interpolationsearch.c index bed884e71..682d9a1ab 100644 --- a/search/interpolationsearch.c +++ b/search/interpolationsearch.c @@ -38,7 +38,8 @@ int main() // Array of items on which search will // be conducted. - int n,arr[n]; + int n; + int arr[] scanf("%d",&n); for(i=0;i Date: Fri, 1 Dec 2017 22:46:08 +0530 Subject: [PATCH 074/131] Update README.md --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index eee82c261..b09314905 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,22 @@ __Properties__ * Average case performance O(log n) * Worst case space complexity O(1) +### Interpolation +Interpolation search is an improved version of binary search algorithm. + +![alt text](https://qph.ec.quoracdn.net/main-qimg-02f1f050de01608b9b1f2f27155d1b17) + +Even when the data is sorted, binary search does not take advantage of that to probe the position of desired data. +Position Probing in Interpolation Search +Interpolation search search a particular item by computing the probe position. Initially probe position is the position of the middle most item of the collection. +If middle item is greater than item then probe position is again calculated in the sub-array to the right of the middle item other wise item is search in sub-array to the left of the middle item. This process continues on sub-array as well until the size of subarray reduces to zero. + +__Properties__ + +Runtime complexity is Ο(log (log n)) as compared to Ο(log n) of Binary Search Algorithm in favorable situations. + + + ---------------------------------------------------------------------------------------------------------------------- ## Ciphers From 68ca6928b28749dc18163e2d71b6bda8b57e946c Mon Sep 17 00:00:00 2001 From: kumarprajwal26 <32104560+kumarprajwal26@users.noreply.github.com> Date: Sat, 2 Dec 2017 03:19:24 +0530 Subject: [PATCH 075/131] Update bubble_sort.c Optimizing Bubble sort --- sort/bubble_sort.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sort/bubble_sort.c b/sort/bubble_sort.c index 8f47b721f..3859e41f1 100644 --- a/sort/bubble_sort.c +++ b/sort/bubble_sort.c @@ -7,15 +7,20 @@ void swap(int*,int*); void bubblesort(int arr[], int size) { - int i, j; + int i, j, flag; for (i = 0; i < size - 1; i++) // Function where the actual algorithm is implemented { + flag=1; for (j = 0; j < size - i - 1; j++) { if (arr[j] > arr[j+1]) + { + flag=0; swap(&arr[j], &arr[j+1]); - + } } + if(flag==1) // No change in vlaue of flag depicts that the array has been sorted + break; } } void swap(int *a, int *b) From a3fa677bc2b5a3bca6b3fa1f36c5a26c74c7292d Mon Sep 17 00:00:00 2001 From: manojkun Date: Sat, 2 Dec 2017 11:17:59 +0530 Subject: [PATCH 076/131] Added both Linked List codes into a single Directory --- Linklist/Linklist.cpp => LinkedList/LinkedList_operations.cpp | 0 .../Removing_duplicates_from_Linked_List.cpp | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename Linklist/Linklist.cpp => LinkedList/LinkedList_operations.cpp (100%) rename {Linked-List => LinkedList}/Removing_duplicates_from_Linked_List.cpp (100%) diff --git a/Linklist/Linklist.cpp b/LinkedList/LinkedList_operations.cpp similarity index 100% rename from Linklist/Linklist.cpp rename to LinkedList/LinkedList_operations.cpp diff --git a/Linked-List/Removing_duplicates_from_Linked_List.cpp b/LinkedList/Removing_duplicates_from_Linked_List.cpp similarity index 100% rename from Linked-List/Removing_duplicates_from_Linked_List.cpp rename to LinkedList/Removing_duplicates_from_Linked_List.cpp From 59fcc27f2c4a28c07cc8a66a7d09eeb75ebd9b65 Mon Sep 17 00:00:00 2001 From: kumarprajwal26 <32104560+kumarprajwal26@users.noreply.github.com> Date: Sat, 2 Dec 2017 12:01:49 +0530 Subject: [PATCH 077/131] Update bubble_sort.c --- sort/bubble_sort.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sort/bubble_sort.c b/sort/bubble_sort.c index 3859e41f1..8d12d001f 100644 --- a/sort/bubble_sort.c +++ b/sort/bubble_sort.c @@ -19,7 +19,7 @@ void bubblesort(int arr[], int size) swap(&arr[j], &arr[j+1]); } } - if(flag==1) // No change in vlaue of flag depicts that the array has been sorted + if(flag==1) // No change in value of flag depicts that the array has already been sorted break; } } From 9d47930ce370d2a6ca83aa0416951cc7213507fd Mon Sep 17 00:00:00 2001 From: Shivesh Choudhary <32201319+shiveshchoudhary@users.noreply.github.com> Date: Sat, 2 Dec 2017 12:39:50 +0530 Subject: [PATCH 078/131] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index b09314905..84467b720 100644 --- a/README.md +++ b/README.md @@ -133,9 +133,8 @@ Position Probing in Interpolation Search Interpolation search search a particular item by computing the probe position. Initially probe position is the position of the middle most item of the collection. If middle item is greater than item then probe position is again calculated in the sub-array to the right of the middle item other wise item is search in sub-array to the left of the middle item. This process continues on sub-array as well until the size of subarray reduces to zero. -__Properties__ -Runtime complexity is Ο(log (log n)) as compared to Ο(log n) of Binary Search Algorithm in favorable situations. +## Runtime complexity is Ο(log (log n)) as compared to Ο(log n) of Binary Search Algorithm in favorable situations. From 3d88c66409f4f4085aaf5260686a6bf259e786cf Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Sat, 2 Dec 2017 12:45:40 +0530 Subject: [PATCH 079/131] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 84467b720..13e01f33e 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ Interpolation search search a particular item by computing the probe position. I If middle item is greater than item then probe position is again calculated in the sub-array to the right of the middle item other wise item is search in sub-array to the left of the middle item. This process continues on sub-array as well until the size of subarray reduces to zero. -## Runtime complexity is Ο(log (log n)) as compared to Ο(log n) of Binary Search Algorithm in favorable situations. +#### Runtime complexity is Ο(log (log n)) as compared to Ο(log n) of Binary Search Algorithm in favorable situations. From eaa5fc94b537ed4a9c4753c35e4e3db7cb4730dc Mon Sep 17 00:00:00 2001 From: Shivesh Choudhary <32201319+shiveshchoudhary@users.noreply.github.com> Date: Sat, 2 Dec 2017 13:06:10 +0530 Subject: [PATCH 080/131] Update README.md --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 13e01f33e..b708b97d5 100644 --- a/README.md +++ b/README.md @@ -129,12 +129,15 @@ Interpolation search is an improved version of binary search algorithm. ![alt text](https://qph.ec.quoracdn.net/main-qimg-02f1f050de01608b9b1f2f27155d1b17) Even when the data is sorted, binary search does not take advantage of that to probe the position of desired data. -Position Probing in Interpolation Search -Interpolation search search a particular item by computing the probe position. Initially probe position is the position of the middle most item of the collection. -If middle item is greater than item then probe position is again calculated in the sub-array to the right of the middle item other wise item is search in sub-array to the left of the middle item. This process continues on sub-array as well until the size of subarray reduces to zero. +Position Probing in Interpolation +SearchInterpolation search search a particular item by computing the probe position. Initially probe position is the position of the middle most item of the collection.If middle item is greater than item then probe position is again calculated in the sub-array to the right of the middle item other wise item is search in sub-array to the left of the middle item. This process continues on sub-array as well until the size of subarray reduces to zero. -#### Runtime complexity is Ο(log (log n)) as compared to Ο(log n) of Binary Search Algorithm in favorable situations. +__Properties__ +* Worst case performance O(n) +* Best case performance O(1) +* Average case performance O(log(logn)) +* Worst case space cmplexity O(1) From 21860f8edda9bb63334aaa18040f138d84aa503a Mon Sep 17 00:00:00 2001 From: Manas Gupta <2015csb1018@iitrpr.ac.in> Date: Sat, 2 Dec 2017 14:02:10 +0530 Subject: [PATCH 081/131] Update knapsack.cpp --- Knapsack/knapsack.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Knapsack/knapsack.cpp b/Knapsack/knapsack.cpp index 64002eea4..ddc175650 100644 --- a/Knapsack/knapsack.cpp +++ b/Knapsack/knapsack.cpp @@ -1,4 +1,4 @@ -// This C++ program solves the knapsack problem. A very famous Dynamic Programming problem. +// This C++ program solves the 0-1 knapsack problem. A very famous Dynamic Programming problem. #include using namespace std; typedef long long ll; @@ -41,4 +41,4 @@ int main() cout << "The maximum total value obtained with the following knapsack" << endl; cout << knapsack(V, W, n, maxWeight) << endl; return 0; -} \ No newline at end of file +} From 43832d232973305a13fbacd88f87cb43ec31102c Mon Sep 17 00:00:00 2001 From: nandikeshsingh Date: Sat, 2 Dec 2017 16:40:17 +0530 Subject: [PATCH 082/131] Update Knuth-Morris-Pratt_Algorithm.cpp --- .../Knuth-Morris-Pratt_Algorithm.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp b/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp index 8b79eb63f..b635585f7 100644 --- a/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp +++ b/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp @@ -8,27 +8,29 @@ int main() string text; string pattern; - cin>>text; + cin>>text;//inputting text cout<>pattern; + cin>>pattern;//inputting pattern cout<text_length) + if(pattern_length>text_length)//if pattern_length is greater than text it is not possible to find pattern in text. { cout<<"Not Found"< Date: Sat, 2 Dec 2017 17:52:36 +0530 Subject: [PATCH 083/131] Added bubble sort c and cpp files to a new folder --- sort/bubble sort/bubble_sort.c | 46 ++++++++++++++++++++++++++++++++ sort/bubble sort/bubble_sort.cpp | 31 +++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 sort/bubble sort/bubble_sort.c create mode 100644 sort/bubble sort/bubble_sort.cpp diff --git a/sort/bubble sort/bubble_sort.c b/sort/bubble sort/bubble_sort.c new file mode 100644 index 000000000..8f47b721f --- /dev/null +++ b/sort/bubble sort/bubble_sort.c @@ -0,0 +1,46 @@ + +// BUBBLE SORT + +#include + +void swap(int*,int*); + +void bubblesort(int arr[], int size) +{ + int i, j; + for (i = 0; i < size - 1; i++) // Function where the actual algorithm is implemented + { + for (j = 0; j < size - i - 1; j++) + { + if (arr[j] > arr[j+1]) + swap(&arr[j], &arr[j+1]); + + } + } +} +void swap(int *a, int *b) +{ + int temp; // Function for swapping two variables + temp = *a; + *a = *b; + *b = temp; +} +int main() +{ + int array[100], i, size; + printf("How many numbers you want to sort: "); // Enter the numbers to sort + + scanf("%d", &size); + + printf("\nEnter %d numbers : ", size); + for (i = 0; i < size; i++) + scanf("%d", &array[i]); + bubblesort(array, size); + printf("\nSorted array is "); + + for (i = 0; i < size; i++) + printf(" %d ", array[i]); + printf(" "); + return 0; + +} diff --git a/sort/bubble sort/bubble_sort.cpp b/sort/bubble sort/bubble_sort.cpp new file mode 100644 index 000000000..42634a7ce --- /dev/null +++ b/sort/bubble sort/bubble_sort.cpp @@ -0,0 +1,31 @@ +/* Part of Cosmos by OpenGenus Foundation */ +#include +#include +#include + +void bubble_sort(std::vector &v) +{ + for(int i=0; i < v.size(); ++i) + for(int j=i+1; j < v.size(); ++j) + { + if (v[i] > v[j]) + std::swap(v[i],v[j]); + } +} +int main() +{ + std::vector input_array; + std::cout<<"Enter the number of items in the array: "; + int array_size; + std::cin>>array_size; + for(int i=0;i>input_number; + input_array.push_back(input_number); + } + bubble_sort(input_array); + for(auto x :input_array) + std::cout< Date: Mon, 4 Dec 2017 19:30:06 +0530 Subject: [PATCH 084/131] Added CONTRIBUTING .md --- CONTRIBUTING.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..d7983a478 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,20 @@ +# Contribution guidelines + +First of all, thanks for thinking of contributing to this project. :smile: + +Before sending a Pull Request, please make sure that you're assigned the task on a GitHub issue. + +- If a relevant issue already exists, discuss on the issue and get it assigned to yourself on GitHub. +- If no relevant issue exists, open a new issue and get it assigned to yourself on GitHub. + +Please proceed with a Pull Request only after you're assigned. It'd be sad if your Pull Request (and your hardwork) isn't accepted just because it isn't ideologically compatible. + +While making a Pull Request, please take care of the following rules: + +- Include only one algorithm in each pull request. A PR containing more than one algorithm *will not be merged*. +- Write your algorithm in a language other coders are mostly acquainted with i.e. `C`/`C++`/`Python`/`Java`. Any +other language will be accepted only after discussion with the maintainers. +- When writing the algorithm's code, please include a small `readme.md` file in the folder briefly explaining the +algorithm. Make sure your `readme.md` provides a clear understanding of the algorithm to a new-comer. Explanation +should be given in not more than 300 characters +- Write the name of the algorithm you added and the language you used in the title while making the PR. From aa60973ecb42e82d0a355003d302500af41d033f Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 18:45:31 +0530 Subject: [PATCH 085/131] Rename sort/Merge_Sort.c to sort/Merge_Sort/Merge_Sort.c --- sort/{ => Merge_Sort}/Merge_Sort.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sort/{ => Merge_Sort}/Merge_Sort.c (100%) diff --git a/sort/Merge_Sort.c b/sort/Merge_Sort/Merge_Sort.c similarity index 100% rename from sort/Merge_Sort.c rename to sort/Merge_Sort/Merge_Sort.c From 4387781d4ebbfc194877778d7e139ab87a871ee4 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 18:49:11 +0530 Subject: [PATCH 086/131] Rename sort/Quick_Sort.c to Competitive_Coding/Algorithms/Sort/Quick_Sort/Quick_Sort.c --- .../Algorithms/Sort/Quick_Sort}/Quick_Sort.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sort => Competitive_Coding/Algorithms/Sort/Quick_Sort}/Quick_Sort.c (100%) diff --git a/sort/Quick_Sort.c b/Competitive_Coding/Algorithms/Sort/Quick_Sort/Quick_Sort.c similarity index 100% rename from sort/Quick_Sort.c rename to Competitive_Coding/Algorithms/Sort/Quick_Sort/Quick_Sort.c From 995e7cd1ac407b88d0073b68ab523224c9a99dc7 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 18:52:34 +0530 Subject: [PATCH 087/131] Rename sort/Merge_Sort/Merge_Sort.c to Competitive_Coding/Algorithms/Sort/Merge_Sort/Merge_Sort.c --- .../Algorithms/Sort}/Merge_Sort/Merge_Sort.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sort => Competitive_Coding/Algorithms/Sort}/Merge_Sort/Merge_Sort.c (100%) diff --git a/sort/Merge_Sort/Merge_Sort.c b/Competitive_Coding/Algorithms/Sort/Merge_Sort/Merge_Sort.c similarity index 100% rename from sort/Merge_Sort/Merge_Sort.c rename to Competitive_Coding/Algorithms/Sort/Merge_Sort/Merge_Sort.c From 66f7971e4eac6d225a3563829a929bcca1a7ada5 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 18:54:47 +0530 Subject: [PATCH 088/131] Delete bubble_sort.cpp --- sort/bubble_sort.cpp | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 sort/bubble_sort.cpp diff --git a/sort/bubble_sort.cpp b/sort/bubble_sort.cpp deleted file mode 100644 index 42634a7ce..000000000 --- a/sort/bubble_sort.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* Part of Cosmos by OpenGenus Foundation */ -#include -#include -#include - -void bubble_sort(std::vector &v) -{ - for(int i=0; i < v.size(); ++i) - for(int j=i+1; j < v.size(); ++j) - { - if (v[i] > v[j]) - std::swap(v[i],v[j]); - } -} -int main() -{ - std::vector input_array; - std::cout<<"Enter the number of items in the array: "; - int array_size; - std::cin>>array_size; - for(int i=0;i>input_number; - input_array.push_back(input_number); - } - bubble_sort(input_array); - for(auto x :input_array) - std::cout< Date: Tue, 5 Dec 2017 18:55:05 +0530 Subject: [PATCH 089/131] Delete bubble_sort.c --- sort/bubble_sort.c | 51 ---------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 sort/bubble_sort.c diff --git a/sort/bubble_sort.c b/sort/bubble_sort.c deleted file mode 100644 index 8d12d001f..000000000 --- a/sort/bubble_sort.c +++ /dev/null @@ -1,51 +0,0 @@ - -// BUBBLE SORT - -#include - -void swap(int*,int*); - -void bubblesort(int arr[], int size) -{ - int i, j, flag; - for (i = 0; i < size - 1; i++) // Function where the actual algorithm is implemented - { - flag=1; - for (j = 0; j < size - i - 1; j++) - { - if (arr[j] > arr[j+1]) - { - flag=0; - swap(&arr[j], &arr[j+1]); - } - } - if(flag==1) // No change in value of flag depicts that the array has already been sorted - break; - } -} -void swap(int *a, int *b) -{ - int temp; // Function for swapping two variables - temp = *a; - *a = *b; - *b = temp; -} -int main() -{ - int array[100], i, size; - printf("How many numbers you want to sort: "); // Enter the numbers to sort - - scanf("%d", &size); - - printf("\nEnter %d numbers : ", size); - for (i = 0; i < size; i++) - scanf("%d", &array[i]); - bubblesort(array, size); - printf("\nSorted array is "); - - for (i = 0; i < size; i++) - printf(" %d ", array[i]); - printf(" "); - return 0; - -} From 2e465ba20971f834eaf82025f7bcfea837854027 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 18:56:29 +0530 Subject: [PATCH 090/131] Rename sort/counting_sort.cpp to Competitive_Coding/Algorithms/Sort/Counting_Sort/counting_sort.cpp --- .../Algorithms/Sort/Counting_Sort}/counting_sort.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {sort => Competitive_Coding/Algorithms/Sort/Counting_Sort}/counting_sort.cpp (99%) diff --git a/sort/counting_sort.cpp b/Competitive_Coding/Algorithms/Sort/Counting_Sort/counting_sort.cpp similarity index 99% rename from sort/counting_sort.cpp rename to Competitive_Coding/Algorithms/Sort/Counting_Sort/counting_sort.cpp index 70cdd20f7..14ba7a88a 100644 --- a/sort/counting_sort.cpp +++ b/Competitive_Coding/Algorithms/Sort/Counting_Sort/counting_sort.cpp @@ -42,4 +42,4 @@ int main() printf("Sorted character array is %s", arr); return 0; -} \ No newline at end of file +} From 212138990f6762421a8694eaf2c17e2f1a45237f Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 18:59:37 +0530 Subject: [PATCH 091/131] Rename sort/insertion_sort.c to Competitive_Coding/Algorithms/Sort/Insertion_Sort/insertion_sort.c --- .../Algorithms/Sort/Insertion_Sort}/insertion_sort.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sort => Competitive_Coding/Algorithms/Sort/Insertion_Sort}/insertion_sort.c (100%) diff --git a/sort/insertion_sort.c b/Competitive_Coding/Algorithms/Sort/Insertion_Sort/insertion_sort.c similarity index 100% rename from sort/insertion_sort.c rename to Competitive_Coding/Algorithms/Sort/Insertion_Sort/insertion_sort.c From ea4005f2315b5b2857eb50cbad3ef4c35219768f Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:01:38 +0530 Subject: [PATCH 092/131] Rename sort/selection_sort.c to Competitive_Coding/Algorithms/Sort/Selection_Sort/selection_sort.c --- .../Algorithms/Sort/Selection_Sort}/selection_sort.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sort => Competitive_Coding/Algorithms/Sort/Selection_Sort}/selection_sort.c (100%) diff --git a/sort/selection_sort.c b/Competitive_Coding/Algorithms/Sort/Selection_Sort/selection_sort.c similarity index 100% rename from sort/selection_sort.c rename to Competitive_Coding/Algorithms/Sort/Selection_Sort/selection_sort.c From b37be4d481618e4f8a89d2999cefb06437b7ce42 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:03:17 +0530 Subject: [PATCH 093/131] Rename sort/bubble sort/bubble_sort.c to Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.c --- .../Algorithms/Sort/Bubble Sort}/bubble_sort.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sort/bubble sort => Competitive_Coding/Algorithms/Sort/Bubble Sort}/bubble_sort.c (100%) diff --git a/sort/bubble sort/bubble_sort.c b/Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.c similarity index 100% rename from sort/bubble sort/bubble_sort.c rename to Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.c From 8038bb5bb40b1b25f6df15346f4a40f8a19978e6 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:06:43 +0530 Subject: [PATCH 094/131] Rename sort/bubble sort/bubble_sort.cpp to Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.cpp --- .../Algorithms/Sort/Bubble Sort}/bubble_sort.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {sort/bubble sort => Competitive_Coding/Algorithms/Sort/Bubble Sort}/bubble_sort.cpp (100%) diff --git a/sort/bubble sort/bubble_sort.cpp b/Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.cpp similarity index 100% rename from sort/bubble sort/bubble_sort.cpp rename to Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.cpp From 9e3fd756d9f9900751c867e45f2884030d3b37ef Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:07:05 +0530 Subject: [PATCH 095/131] Delete README.md --- sort/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 sort/README.md diff --git a/sort/README.md b/sort/README.md deleted file mode 100644 index e69de29bb..000000000 From 55657b9b7a4fc72b6e6172a43f77c6e26390a8a4 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:08:10 +0530 Subject: [PATCH 096/131] Rename search/Binary_Search.c to Competitive_Coding/Algorithms/Search/Binary Search/Binary_Search.c --- .../Algorithms/Search/Binary Search}/Binary_Search.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {search => Competitive_Coding/Algorithms/Search/Binary Search}/Binary_Search.c (100%) diff --git a/search/Binary_Search.c b/Competitive_Coding/Algorithms/Search/Binary Search/Binary_Search.c similarity index 100% rename from search/Binary_Search.c rename to Competitive_Coding/Algorithms/Search/Binary Search/Binary_Search.c From f95819f32d75b4b4159a3a8768d1a4f6e61bdfbb Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:09:37 +0530 Subject: [PATCH 097/131] Rename search/linear_search.c to Competitive_Coding/Algorithms/Search/Linear Search/linear_search.c --- .../Algorithms/Search/Linear Search}/linear_search.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {search => Competitive_Coding/Algorithms/Search/Linear Search}/linear_search.c (100%) diff --git a/search/linear_search.c b/Competitive_Coding/Algorithms/Search/Linear Search/linear_search.c similarity index 100% rename from search/linear_search.c rename to Competitive_Coding/Algorithms/Search/Linear Search/linear_search.c From ab44af2ba96f13a7bd310a48b7fd3c0be6bcfd51 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:10:08 +0530 Subject: [PATCH 098/131] Rename search/interpolationsearch.c to Competitive_Coding/Algorithms/Search/Linear Search/interpolationsearch.c --- .../Algorithms/Search/Linear Search}/interpolationsearch.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {search => Competitive_Coding/Algorithms/Search/Linear Search}/interpolationsearch.c (100%) diff --git a/search/interpolationsearch.c b/Competitive_Coding/Algorithms/Search/Linear Search/interpolationsearch.c similarity index 100% rename from search/interpolationsearch.c rename to Competitive_Coding/Algorithms/Search/Linear Search/interpolationsearch.c From f6552200ff7f003a13eea94fbc05eed45b89277e Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:11:39 +0530 Subject: [PATCH 099/131] Rename search/string_search/Knuth-Morris-Pratt_Algorithm.cpp to Competitive_Coding/Algorithms/Search/String Search/Knuth-Morris-Pratt_Algorithm.cpp --- .../Search/String Search}/Knuth-Morris-Pratt_Algorithm.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {search/string_search => Competitive_Coding/Algorithms/Search/String Search}/Knuth-Morris-Pratt_Algorithm.cpp (100%) diff --git a/search/string_search/Knuth-Morris-Pratt_Algorithm.cpp b/Competitive_Coding/Algorithms/Search/String Search/Knuth-Morris-Pratt_Algorithm.cpp similarity index 100% rename from search/string_search/Knuth-Morris-Pratt_Algorithm.cpp rename to Competitive_Coding/Algorithms/Search/String Search/Knuth-Morris-Pratt_Algorithm.cpp From 03b4129b53531219e6433f81c9af811b8d7d8ba1 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:12:24 +0530 Subject: [PATCH 100/131] Rename search/string_search/boyer_moore_algorithm.c to Competitive_Coding/Algorithms/Search/String Search/boyer_moore_algo --- .../Algorithms/Search/String Search/boyer_moore_algo | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename search/string_search/boyer_moore_algorithm.c => Competitive_Coding/Algorithms/Search/String Search/boyer_moore_algo (100%) diff --git a/search/string_search/boyer_moore_algorithm.c b/Competitive_Coding/Algorithms/Search/String Search/boyer_moore_algo similarity index 100% rename from search/string_search/boyer_moore_algorithm.c rename to Competitive_Coding/Algorithms/Search/String Search/boyer_moore_algo From 581e992dc5e42662293ca2bacbf0a253b158b554 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:13:25 +0530 Subject: [PATCH 101/131] Rename Competitive_Coding/Algorithms/Search/Linear Search/interpolationsearch.c to Competitive_Coding/Algorithms/Search/Interpolation Search/interpolation_search.c --- .../interpolation_search.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Competitive_Coding/Algorithms/Search/{Linear Search/interpolationsearch.c => Interpolation Search/interpolation_search.c} (100%) diff --git a/Competitive_Coding/Algorithms/Search/Linear Search/interpolationsearch.c b/Competitive_Coding/Algorithms/Search/Interpolation Search/interpolation_search.c similarity index 100% rename from Competitive_Coding/Algorithms/Search/Linear Search/interpolationsearch.c rename to Competitive_Coding/Algorithms/Search/Interpolation Search/interpolation_search.c From f16d5db88dc5096a5284e9536cdb98fc5dff3785 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:16:03 +0530 Subject: [PATCH 102/131] Rename LinkedList/LinkedList_operations.cpp to Competitive_Coding/Data Structures/Linked List/Linked_List_operation.cpp --- .../Data Structures/Linked List/Linked_List_operation.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename LinkedList/LinkedList_operations.cpp => Competitive_Coding/Data Structures/Linked List/Linked_List_operation.cpp (100%) diff --git a/LinkedList/LinkedList_operations.cpp b/Competitive_Coding/Data Structures/Linked List/Linked_List_operation.cpp similarity index 100% rename from LinkedList/LinkedList_operations.cpp rename to Competitive_Coding/Data Structures/Linked List/Linked_List_operation.cpp From 033215504b928dff8ed9ee5ea096cf4c7d72ce90 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:18:07 +0530 Subject: [PATCH 103/131] Rename LinkedList/Removing_duplicates_from_Linked_List.cpp to Competitive_Coding/Data Structures/Linked List/Removing_duplicates_from_Linked_List.cpp --- .../Linked List}/Removing_duplicates_from_Linked_List.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {LinkedList => Competitive_Coding/Data Structures/Linked List}/Removing_duplicates_from_Linked_List.cpp (100%) diff --git a/LinkedList/Removing_duplicates_from_Linked_List.cpp b/Competitive_Coding/Data Structures/Linked List/Removing_duplicates_from_Linked_List.cpp similarity index 100% rename from LinkedList/Removing_duplicates_from_Linked_List.cpp rename to Competitive_Coding/Data Structures/Linked List/Removing_duplicates_from_Linked_List.cpp From 26c6917e2379d1954c24073c2ab20e9de4561bd7 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:19:47 +0530 Subject: [PATCH 104/131] Delete rsa.py --- Cryptography/RSA_Algorithm/rsa.py | 116 ------------------------------ 1 file changed, 116 deletions(-) delete mode 100644 Cryptography/RSA_Algorithm/rsa.py diff --git a/Cryptography/RSA_Algorithm/rsa.py b/Cryptography/RSA_Algorithm/rsa.py deleted file mode 100644 index d4d764752..000000000 --- a/Cryptography/RSA_Algorithm/rsa.py +++ /dev/null @@ -1,116 +0,0 @@ -import random - - -''' -Euclid's algorithm for determining the greatest common divisor -Use iteration to make it faster for larger integers -''' -def gcd(a, b): - while b != 0: - a, b = b, a % b - return a - -''' -Euclid's extended algorithm for finding the multiplicative inverse of two numbers -''' -def multiplicative_inverse(e, phi): - d = 0 - x1 = 0 - x2 = 1 - y1 = 1 - temp_phi = phi - - while e > 0: - temp1 = temp_phi/e - temp2 = temp_phi - temp1 * e - temp_phi = e - e = temp2 - - x = x2- temp1* x1 - y = d - temp1 * y1 - - x2 = x1 - x1 = x - d = y1 - y1 = y - - if temp_phi == 1: - return d + phi - -''' -Tests to see if a number is prime. -''' -def is_prime(num): - if num == 2: - return True - if num < 2 or num % 2 == 0: - return False - for n in xrange(3, int(num**0.5)+2, 2): - if num % n == 0: - return False - return True - -def generate_keypair(p, q): - if not (is_prime(p) and is_prime(q)): - raise ValueError('Both numbers must be prime.') - elif p == q: - raise ValueError('p and q cannot be equal') - #n = pq - n = p * q - - #Phi is the totient of n - # n number theory, Euler's totient function counts the positive integers up to a given integer n that are relatively prime to n. - phi = (p-1) * (q-1) - - #Choose an integer e such that e and phi(n) are coprime - e = random.randrange(1, phi) - - #Use Euclid's Algorithm to verify that e and phi(n) are comprime - - g = gcd(e, phi) - while g != 1: - e = random.randrange(1, phi) - g = gcd(e, phi) - - #Use Extended Euclid's Algorithm to generate the private key - - d = multiplicative_inverse(e, phi) - - #Return public and private keypair - #Public key is (e, n) and private key is (d, n) - return ((e, n), (d, n)) - -def encrypt(pk, plaintext): - #Unpack the key into it's components - key, n = pk - #Convert each letter in the plaintext to numbers based on the character using a^b mod m - cipher = [(ord(char) ** key) % n for char in plaintext] - #Return the array of bytes - return cipher - -def decrypt(pk, ciphertext): - #Unpack the key into its components - key, n = pk - #Generate the plaintext based on the ciphertext and key using a^b mod m - plain = [chr((char ** key) % n) for char in ciphertext] - #Return the array of bytes as a string - return ''.join(plain) - - -if __name__ == '__main__': - ''' - Detect if the script is being run directly by the user - ''' - print "RSA Encrypter/ Decrypter" - p = int(raw_input("Enter a prime number (17, 19, 23, etc): ")) - q = int(raw_input("Enter another prime number (Not one you entered above): ")) - print "Generating your public/private keypairs now . . ." - public, private = generate_keypair(p, q) - print "Your public key is ", public ," and your private key is ", private - message = raw_input("Enter a message to encrypt with your private key: ") - encrypted_msg = encrypt(private, message) - print "Your encrypted message is: " - print ''.join(map(lambda x: str(x), encrypted_msg)) - print "Decrypting message with public key ", public ," . . ." - print "Your message is:" - print decrypt(public, encrypted_msg) From fdb9eb550d03664d8527b277473f1c9c289dd9cb Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:20:55 +0530 Subject: [PATCH 105/131] Rename Cryptography/RSA_Algortihm/rsa.py to Security Algorithms/Cryptography/RSA Algortihm/rsa.py --- .../Cryptography/RSA Algortihm}/rsa.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {Cryptography/RSA_Algortihm => Security Algorithms/Cryptography/RSA Algortihm}/rsa.py (100%) diff --git a/Cryptography/RSA_Algortihm/rsa.py b/Security Algorithms/Cryptography/RSA Algortihm/rsa.py similarity index 100% rename from Cryptography/RSA_Algortihm/rsa.py rename to Security Algorithms/Cryptography/RSA Algortihm/rsa.py From a0f9c3bf18c991a9760636ff0568fb2823ae60ea Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:25:45 +0530 Subject: [PATCH 106/131] Rename Longest_Increasing_Subsequence/lis_n_log_n.cpp to Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp --- .../Longest Increasing Subsequence}/lis_n_log_n.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {Longest_Increasing_Subsequence => Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence}/lis_n_log_n.cpp (99%) diff --git a/Longest_Increasing_Subsequence/lis_n_log_n.cpp b/Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp similarity index 99% rename from Longest_Increasing_Subsequence/lis_n_log_n.cpp rename to Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp index 931ddcb1a..3c4e5e862 100644 --- a/Longest_Increasing_Subsequence/lis_n_log_n.cpp +++ b/Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp @@ -64,4 +64,4 @@ int main(void) } lis(a,n); return 0; -} \ No newline at end of file +} From 79564813df2f07e400901bb08c532470f4a423ef Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:27:42 +0530 Subject: [PATCH 107/131] Rename Longest_Increasing_Subsequence/lis_n_squared_sol.cpp to Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp --- .../Longest Increasing Subsequence}/lis_n_squared_sol.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {Longest_Increasing_Subsequence => Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence}/lis_n_squared_sol.cpp (99%) diff --git a/Longest_Increasing_Subsequence/lis_n_squared_sol.cpp b/Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp similarity index 99% rename from Longest_Increasing_Subsequence/lis_n_squared_sol.cpp rename to Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp index 471a6aa33..a998012e9 100644 --- a/Longest_Increasing_Subsequence/lis_n_squared_sol.cpp +++ b/Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp @@ -70,4 +70,4 @@ int main(void) } lis(a,n); return 0; -} \ No newline at end of file +} From a7325f0beddb8f6d77eb586fffe602b54810af57 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:28:44 +0530 Subject: [PATCH 108/131] Delete a.out --- Longest_Increasing_Subsequence/a.out | Bin 13600 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 Longest_Increasing_Subsequence/a.out diff --git a/Longest_Increasing_Subsequence/a.out b/Longest_Increasing_Subsequence/a.out deleted file mode 100755 index 4f7b1a9728c0681ce1f6577a88fd744877929a8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13600 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 From f8500718d377b258c2777aea56679bdc707e15b8 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:30:01 +0530 Subject: [PATCH 109/131] Rename Longest_Common_Subsequence/lcs.cpp to Competitive_Coding/Algorithms/Dynamic Programming/Longest Common Subsequence/lcs.cpp --- .../Dynamic Programming/Longest Common Subsequence}/lcs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {Longest_Common_Subsequence => Competitive_Coding/Algorithms/Dynamic Programming/Longest Common Subsequence}/lcs.cpp (99%) diff --git a/Longest_Common_Subsequence/lcs.cpp b/Competitive_Coding/Algorithms/Dynamic Programming/Longest Common Subsequence/lcs.cpp similarity index 99% rename from Longest_Common_Subsequence/lcs.cpp rename to Competitive_Coding/Algorithms/Dynamic Programming/Longest Common Subsequence/lcs.cpp index e931be526..21feef00e 100644 --- a/Longest_Common_Subsequence/lcs.cpp +++ b/Competitive_Coding/Algorithms/Dynamic Programming/Longest Common Subsequence/lcs.cpp @@ -70,4 +70,4 @@ int main(void) cin>>str2; lcs(str1,str2); return 0; -} \ No newline at end of file +} From d3b85d49e20271282f7c862352a6ea5657f3d23c Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:34:05 +0530 Subject: [PATCH 110/131] Rename Knapsack/knapsack.cpp to Competitive_Coding/Algorithms/Greedy/Knapsack/knapsack.cpp --- .../Algorithms/Greedy/Knapsack}/knapsack.cpp | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {Knapsack => Competitive_Coding/Algorithms/Greedy/Knapsack}/knapsack.cpp (100%) diff --git a/Knapsack/knapsack.cpp b/Competitive_Coding/Algorithms/Greedy/Knapsack/knapsack.cpp similarity index 100% rename from Knapsack/knapsack.cpp rename to Competitive_Coding/Algorithms/Greedy/Knapsack/knapsack.cpp From 1a2f225f2e9613243c3ef204d6b27dad63209c88 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:34:31 +0530 Subject: [PATCH 111/131] Delete a.out --- Knapsack/a.out | Bin 13616 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 Knapsack/a.out diff --git a/Knapsack/a.out b/Knapsack/a.out deleted file mode 100755 index c17d4090b3fcb72ed1f407aa03a0b3b7d7d3c4b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13616 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 From 31d72ab3d77746fb330c5322d0e09e14af858bff Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:36:25 +0530 Subject: [PATCH 112/131] Rename Shortest_Path/dijsktra/dijsktra_implementation.cpp to Competitive_Coding/Algorithms/Shortest Path/dijsktra/dijsktra_implementation.cpp --- .../Shortest Path}/dijsktra/dijsktra_implementation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {Shortest_Path => Competitive_Coding/Algorithms/Shortest Path}/dijsktra/dijsktra_implementation.cpp (99%) diff --git a/Shortest_Path/dijsktra/dijsktra_implementation.cpp b/Competitive_Coding/Algorithms/Shortest Path/dijsktra/dijsktra_implementation.cpp similarity index 99% rename from Shortest_Path/dijsktra/dijsktra_implementation.cpp rename to Competitive_Coding/Algorithms/Shortest Path/dijsktra/dijsktra_implementation.cpp index d2d0025f5..efec0e8c7 100644 --- a/Shortest_Path/dijsktra/dijsktra_implementation.cpp +++ b/Competitive_Coding/Algorithms/Shortest Path/dijsktra/dijsktra_implementation.cpp @@ -227,4 +227,4 @@ int main(void) dijsktra(G,a-1); } return 0; -} \ No newline at end of file +} From 547fe50e995105c7cfcfbad10158a714c5f047ea Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:37:56 +0530 Subject: [PATCH 113/131] Rename Shortest_Path/dijsktra/READMEDijkstra.md to Competitive_Coding/Algorithms/Shortest Path/dijsktra/README.md --- .../Algorithms/Shortest Path/dijsktra/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Shortest_Path/dijsktra/READMEDijkstra.md => Competitive_Coding/Algorithms/Shortest Path/dijsktra/README.md (100%) diff --git a/Shortest_Path/dijsktra/READMEDijkstra.md b/Competitive_Coding/Algorithms/Shortest Path/dijsktra/README.md similarity index 100% rename from Shortest_Path/dijsktra/READMEDijkstra.md rename to Competitive_Coding/Algorithms/Shortest Path/dijsktra/README.md From 8edd40504ba967380bba0fd547c9ba9c4867f18c Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:38:32 +0530 Subject: [PATCH 114/131] Delete a.out --- Shortest_Path/dijsktra/a.out | Bin 33192 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 Shortest_Path/dijsktra/a.out diff --git a/Shortest_Path/dijsktra/a.out b/Shortest_Path/dijsktra/a.out deleted file mode 100755 index d6a1a06325ead93e54f3d71b7d446c9964cfb8bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33192 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 G{r(S(;oz(Q From d3c1be853ca455f0bab31a74944a08df307d6acb Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:39:49 +0530 Subject: [PATCH 115/131] Delete a.out --- Shortest_Path/Floyd-Warshall/a.out | Bin 13584 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 Shortest_Path/Floyd-Warshall/a.out diff --git a/Shortest_Path/Floyd-Warshall/a.out b/Shortest_Path/Floyd-Warshall/a.out deleted file mode 100755 index 162a7202c3524a91bb5bbb22b6a15d741f901308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13584 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 BcU1rY From b7c50968a0d4ba837087c0fa2940e49073cbf8e5 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:41:05 +0530 Subject: [PATCH 116/131] Rename Shortest_Path/Floyd-Warshall/floyd_warshall.cpp to Competitive_Coding/Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp --- .../Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename Shortest_Path/Floyd-Warshall/floyd_warshall.cpp => Competitive_Coding/Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp (99%) diff --git a/Shortest_Path/Floyd-Warshall/floyd_warshall.cpp b/Competitive_Coding/Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp similarity index 99% rename from Shortest_Path/Floyd-Warshall/floyd_warshall.cpp rename to Competitive_Coding/Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp index 24e6cb3a2..12e68a158 100644 --- a/Shortest_Path/Floyd-Warshall/floyd_warshall.cpp +++ b/Competitive_Coding/Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp @@ -54,4 +54,4 @@ int main(void) cout< Date: Tue, 5 Dec 2017 19:42:12 +0530 Subject: [PATCH 117/131] Rename Minimum_Spanning_Tree/KruskalMST.cpp to Competitive_Coding/Algorithms/Minimum Spanning Tree/Kruskal/KruskalMST.cpp --- .../Algorithms/Minimum Spanning Tree/Kruskal}/KruskalMST.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {Minimum_Spanning_Tree => Competitive_Coding/Algorithms/Minimum Spanning Tree/Kruskal}/KruskalMST.cpp (99%) diff --git a/Minimum_Spanning_Tree/KruskalMST.cpp b/Competitive_Coding/Algorithms/Minimum Spanning Tree/Kruskal/KruskalMST.cpp similarity index 99% rename from Minimum_Spanning_Tree/KruskalMST.cpp rename to Competitive_Coding/Algorithms/Minimum Spanning Tree/Kruskal/KruskalMST.cpp index 222e852dd..d8d79789d 100644 --- a/Minimum_Spanning_Tree/KruskalMST.cpp +++ b/Competitive_Coding/Algorithms/Minimum Spanning Tree/Kruskal/KruskalMST.cpp @@ -104,4 +104,4 @@ int main(void) cin>>a; KruskalMST(G); return 0; -} \ No newline at end of file +} From 72eb2ea8ac6a17883742de15eb1cc1f8ec4d1353 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:43:13 +0530 Subject: [PATCH 118/131] Rename Minimum_Spanning_Tree/Prims.cpp to Competitive_Coding/Algorithms/Minimum Spanning Tree/Prims/Prims.cpp --- .../Algorithms/Minimum Spanning Tree/Prims}/Prims.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {Minimum_Spanning_Tree => Competitive_Coding/Algorithms/Minimum Spanning Tree/Prims}/Prims.cpp (99%) diff --git a/Minimum_Spanning_Tree/Prims.cpp b/Competitive_Coding/Algorithms/Minimum Spanning Tree/Prims/Prims.cpp similarity index 99% rename from Minimum_Spanning_Tree/Prims.cpp rename to Competitive_Coding/Algorithms/Minimum Spanning Tree/Prims/Prims.cpp index 242040193..ac5c467cf 100644 --- a/Minimum_Spanning_Tree/Prims.cpp +++ b/Competitive_Coding/Algorithms/Minimum Spanning Tree/Prims/Prims.cpp @@ -222,4 +222,4 @@ int main(void) cin>>a; PrimMST(G,0); return 0; -} \ No newline at end of file +} From 999a1c823694bac61ba7dd0445c9a06b132695da Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:43:41 +0530 Subject: [PATCH 119/131] Delete a.out --- Minimum_Spanning_Tree/a.out | Bin 53424 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 Minimum_Spanning_Tree/a.out diff --git a/Minimum_Spanning_Tree/a.out b/Minimum_Spanning_Tree/a.out deleted file mode 100755 index b763fff5e3ca753728b7e0081d687a7f9370d3f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53424 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 Date: Tue, 5 Dec 2017 19:44:33 +0530 Subject: [PATCH 120/131] Delete time_complexity_graph.png --- search/time_complexity_graph.png | Bin 29803 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 search/time_complexity_graph.png diff --git a/search/time_complexity_graph.png b/search/time_complexity_graph.png deleted file mode 100644 index e6acf69a9d84a59ff44689d4091f7e1305bf64e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29803 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 Date: Tue, 5 Dec 2017 19:44:44 +0530 Subject: [PATCH 121/131] Delete README.md --- search/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 search/README.md diff --git a/search/README.md b/search/README.md deleted file mode 100644 index e69de29bb..000000000 From 52eb7abc8903ef1485128334775243c0d9f04a32 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Tue, 5 Dec 2017 19:47:10 +0530 Subject: [PATCH 122/131] Rename BInary_Tree/level_order_traversal.c to Competitive_Coding/Data Structures/Tree/Binary Tree/level_order_traversal.c --- .../Data Structures/Tree/Binary Tree}/level_order_traversal.c | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {BInary_Tree => Competitive_Coding/Data Structures/Tree/Binary Tree}/level_order_traversal.c (100%) diff --git a/BInary_Tree/level_order_traversal.c b/Competitive_Coding/Data Structures/Tree/Binary Tree/level_order_traversal.c similarity index 100% rename from BInary_Tree/level_order_traversal.c rename to Competitive_Coding/Data Structures/Tree/Binary Tree/level_order_traversal.c From 4d9161a79587d2de7824a9fbfb6694fdac178645 Mon Sep 17 00:00:00 2001 From: Mayank Date: Tue, 5 Dec 2017 23:46:54 +0530 Subject: [PATCH 123/131] First draft of structural changes. --- .../Edit Distance}/CODECHEF_seatsr.cpp | 0 .../Edit Distance}/SPOJ_edist.cpp | 0 .../Dynamic Programming/Edit Distance}/a.out | Bin .../Longest Common Subsequence/lcs.cpp | 0 .../Longest Increasing Subsequence/lis_n_log_n.cpp | 0 .../lis_n_squared_sol.cpp | 0 .../Shortest Path/Floyd Warshall/Floyd_Warshall.cpp | 0 .../Graphs}/Shortest Path/dijsktra/README.md | 0 .../dijsktra/dijsktra_implementation.cpp | 0 .../Greedy/Knapsack/knapsack.cpp | 0 .../Linked List/Linked_List_operation.cpp | 0 .../Removing_duplicates_from_Linked_List.cpp | 0 .../Search/Binary Search/Binary_Search.c | 0 .../Interpolation Search/interpolation_search.c | 0 .../Search/Linear Search/linear_search.c | 0 .../Sorting}/Bubble Sort/bubble_sort.c | 0 .../Sorting}/Bubble Sort/bubble_sort.cpp | 0 .../Sorting}/Counting_Sort/counting_sort.cpp | 0 .../Sorting}/Insertion_Sort/insertion_sort.c | 0 .../Sorting}/Merge_Sort/Merge_Sort.c | 0 .../Sorting}/Quick_Sort/Quick_Sort.c | 0 .../Sorting}/Selection_Sort/selection_sort.c | 0 .../String Search/Knuth-Morris-Pratt_Algorithm.cpp | 0 .../Strings}/String Search/boyer_moore_algo | 0 .../Tree/Binary Indexed Tree}/Reference.txt | 0 .../Tree/Binary Indexed Tree}/SPOJ_ctrick.cpp | 0 .../Tree/Binary Indexed Tree}/SPOJ_invcnt.cpp | 0 .../Binary Indexed Tree}/binary_indexed_tree.cpp | 0 .../range_query_range_update/SPOJ_horrible.cpp | 0 .../Tree/Binary Tree/level_order_traversal.c | 0 .../Minimum Spanning Tree/Kruskal/KruskalMST.cpp | 0 .../Tree}/Minimum Spanning Tree/Prims/Prims.cpp | 0 32 files changed, 0 insertions(+), 0 deletions(-) rename {editDistance => Competitive Coding/Dynamic Programming/Edit Distance}/CODECHEF_seatsr.cpp (100%) rename {editDistance => Competitive Coding/Dynamic Programming/Edit Distance}/SPOJ_edist.cpp (100%) rename {editDistance => Competitive Coding/Dynamic Programming/Edit Distance}/a.out (100%) rename {Competitive_Coding/Algorithms => Competitive Coding}/Dynamic Programming/Longest Common Subsequence/lcs.cpp (100%) rename {Competitive_Coding/Algorithms => Competitive Coding}/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp (100%) rename {Competitive_Coding/Algorithms => Competitive Coding}/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp (100%) rename {Competitive_Coding/Algorithms => Competitive Coding/Graphs}/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp (100%) rename {Competitive_Coding/Algorithms => Competitive Coding/Graphs}/Shortest Path/dijsktra/README.md (100%) rename {Competitive_Coding/Algorithms => Competitive Coding/Graphs}/Shortest Path/dijsktra/dijsktra_implementation.cpp (100%) rename {Competitive_Coding/Algorithms => Competitive Coding}/Greedy/Knapsack/knapsack.cpp (100%) rename {Competitive_Coding/Data Structures => Competitive Coding}/Linked List/Linked_List_operation.cpp (100%) rename {Competitive_Coding/Data Structures => Competitive Coding}/Linked List/Removing_duplicates_from_Linked_List.cpp (100%) rename {Competitive_Coding/Algorithms => Competitive Coding}/Search/Binary Search/Binary_Search.c (100%) rename {Competitive_Coding/Algorithms => Competitive Coding}/Search/Interpolation Search/interpolation_search.c (100%) rename {Competitive_Coding/Algorithms => Competitive Coding}/Search/Linear Search/linear_search.c (100%) rename {Competitive_Coding/Algorithms/Sort => Competitive Coding/Sorting}/Bubble Sort/bubble_sort.c (100%) rename {Competitive_Coding/Algorithms/Sort => Competitive Coding/Sorting}/Bubble Sort/bubble_sort.cpp (100%) rename {Competitive_Coding/Algorithms/Sort => Competitive Coding/Sorting}/Counting_Sort/counting_sort.cpp (100%) rename {Competitive_Coding/Algorithms/Sort => Competitive Coding/Sorting}/Insertion_Sort/insertion_sort.c (100%) rename {Competitive_Coding/Algorithms/Sort => Competitive Coding/Sorting}/Merge_Sort/Merge_Sort.c (100%) rename {Competitive_Coding/Algorithms/Sort => Competitive Coding/Sorting}/Quick_Sort/Quick_Sort.c (100%) rename {Competitive_Coding/Algorithms/Sort => Competitive Coding/Sorting}/Selection_Sort/selection_sort.c (100%) rename {Competitive_Coding/Algorithms/Search => Competitive Coding/Strings}/String Search/Knuth-Morris-Pratt_Algorithm.cpp (100%) rename {Competitive_Coding/Algorithms/Search => Competitive Coding/Strings}/String Search/boyer_moore_algo (100%) rename {binaryIndexedTree => Competitive Coding/Tree/Binary Indexed Tree}/Reference.txt (100%) rename {binaryIndexedTree => Competitive Coding/Tree/Binary Indexed Tree}/SPOJ_ctrick.cpp (100%) rename {binaryIndexedTree => Competitive Coding/Tree/Binary Indexed Tree}/SPOJ_invcnt.cpp (100%) rename {binaryIndexedTree => Competitive Coding/Tree/Binary Indexed Tree}/binary_indexed_tree.cpp (100%) rename {binaryIndexedTree => Competitive Coding/Tree/Binary Indexed Tree}/range_query_range_update/SPOJ_horrible.cpp (100%) rename {Competitive_Coding/Data Structures => Competitive Coding}/Tree/Binary Tree/level_order_traversal.c (100%) rename {Competitive_Coding/Algorithms => Competitive Coding/Tree}/Minimum Spanning Tree/Kruskal/KruskalMST.cpp (100%) rename {Competitive_Coding/Algorithms => Competitive Coding/Tree}/Minimum Spanning Tree/Prims/Prims.cpp (100%) diff --git a/editDistance/CODECHEF_seatsr.cpp b/Competitive Coding/Dynamic Programming/Edit Distance/CODECHEF_seatsr.cpp similarity index 100% rename from editDistance/CODECHEF_seatsr.cpp rename to Competitive Coding/Dynamic Programming/Edit Distance/CODECHEF_seatsr.cpp diff --git a/editDistance/SPOJ_edist.cpp b/Competitive Coding/Dynamic Programming/Edit Distance/SPOJ_edist.cpp similarity index 100% rename from editDistance/SPOJ_edist.cpp rename to Competitive Coding/Dynamic Programming/Edit Distance/SPOJ_edist.cpp diff --git a/editDistance/a.out b/Competitive Coding/Dynamic Programming/Edit Distance/a.out similarity index 100% rename from editDistance/a.out rename to Competitive Coding/Dynamic Programming/Edit Distance/a.out diff --git a/Competitive_Coding/Algorithms/Dynamic Programming/Longest Common Subsequence/lcs.cpp b/Competitive Coding/Dynamic Programming/Longest Common Subsequence/lcs.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Dynamic Programming/Longest Common Subsequence/lcs.cpp rename to Competitive Coding/Dynamic Programming/Longest Common Subsequence/lcs.cpp diff --git a/Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp b/Competitive Coding/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp rename to Competitive Coding/Dynamic Programming/Longest Increasing Subsequence/lis_n_log_n.cpp diff --git a/Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp b/Competitive Coding/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp rename to Competitive Coding/Dynamic Programming/Longest Increasing Subsequence/lis_n_squared_sol.cpp diff --git a/Competitive_Coding/Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp b/Competitive Coding/Graphs/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp rename to Competitive Coding/Graphs/Shortest Path/Floyd Warshall/Floyd_Warshall.cpp diff --git a/Competitive_Coding/Algorithms/Shortest Path/dijsktra/README.md b/Competitive Coding/Graphs/Shortest Path/dijsktra/README.md similarity index 100% rename from Competitive_Coding/Algorithms/Shortest Path/dijsktra/README.md rename to Competitive Coding/Graphs/Shortest Path/dijsktra/README.md diff --git a/Competitive_Coding/Algorithms/Shortest Path/dijsktra/dijsktra_implementation.cpp b/Competitive Coding/Graphs/Shortest Path/dijsktra/dijsktra_implementation.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Shortest Path/dijsktra/dijsktra_implementation.cpp rename to Competitive Coding/Graphs/Shortest Path/dijsktra/dijsktra_implementation.cpp diff --git a/Competitive_Coding/Algorithms/Greedy/Knapsack/knapsack.cpp b/Competitive Coding/Greedy/Knapsack/knapsack.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Greedy/Knapsack/knapsack.cpp rename to Competitive Coding/Greedy/Knapsack/knapsack.cpp diff --git a/Competitive_Coding/Data Structures/Linked List/Linked_List_operation.cpp b/Competitive Coding/Linked List/Linked_List_operation.cpp similarity index 100% rename from Competitive_Coding/Data Structures/Linked List/Linked_List_operation.cpp rename to Competitive Coding/Linked List/Linked_List_operation.cpp diff --git a/Competitive_Coding/Data Structures/Linked List/Removing_duplicates_from_Linked_List.cpp b/Competitive Coding/Linked List/Removing_duplicates_from_Linked_List.cpp similarity index 100% rename from Competitive_Coding/Data Structures/Linked List/Removing_duplicates_from_Linked_List.cpp rename to Competitive Coding/Linked List/Removing_duplicates_from_Linked_List.cpp diff --git a/Competitive_Coding/Algorithms/Search/Binary Search/Binary_Search.c b/Competitive Coding/Search/Binary Search/Binary_Search.c similarity index 100% rename from Competitive_Coding/Algorithms/Search/Binary Search/Binary_Search.c rename to Competitive Coding/Search/Binary Search/Binary_Search.c diff --git a/Competitive_Coding/Algorithms/Search/Interpolation Search/interpolation_search.c b/Competitive Coding/Search/Interpolation Search/interpolation_search.c similarity index 100% rename from Competitive_Coding/Algorithms/Search/Interpolation Search/interpolation_search.c rename to Competitive Coding/Search/Interpolation Search/interpolation_search.c diff --git a/Competitive_Coding/Algorithms/Search/Linear Search/linear_search.c b/Competitive Coding/Search/Linear Search/linear_search.c similarity index 100% rename from Competitive_Coding/Algorithms/Search/Linear Search/linear_search.c rename to Competitive Coding/Search/Linear Search/linear_search.c diff --git a/Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.c b/Competitive Coding/Sorting/Bubble Sort/bubble_sort.c similarity index 100% rename from Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.c rename to Competitive Coding/Sorting/Bubble Sort/bubble_sort.c diff --git a/Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.cpp b/Competitive Coding/Sorting/Bubble Sort/bubble_sort.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Sort/Bubble Sort/bubble_sort.cpp rename to Competitive Coding/Sorting/Bubble Sort/bubble_sort.cpp diff --git a/Competitive_Coding/Algorithms/Sort/Counting_Sort/counting_sort.cpp b/Competitive Coding/Sorting/Counting_Sort/counting_sort.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Sort/Counting_Sort/counting_sort.cpp rename to Competitive Coding/Sorting/Counting_Sort/counting_sort.cpp diff --git a/Competitive_Coding/Algorithms/Sort/Insertion_Sort/insertion_sort.c b/Competitive Coding/Sorting/Insertion_Sort/insertion_sort.c similarity index 100% rename from Competitive_Coding/Algorithms/Sort/Insertion_Sort/insertion_sort.c rename to Competitive Coding/Sorting/Insertion_Sort/insertion_sort.c diff --git a/Competitive_Coding/Algorithms/Sort/Merge_Sort/Merge_Sort.c b/Competitive Coding/Sorting/Merge_Sort/Merge_Sort.c similarity index 100% rename from Competitive_Coding/Algorithms/Sort/Merge_Sort/Merge_Sort.c rename to Competitive Coding/Sorting/Merge_Sort/Merge_Sort.c diff --git a/Competitive_Coding/Algorithms/Sort/Quick_Sort/Quick_Sort.c b/Competitive Coding/Sorting/Quick_Sort/Quick_Sort.c similarity index 100% rename from Competitive_Coding/Algorithms/Sort/Quick_Sort/Quick_Sort.c rename to Competitive Coding/Sorting/Quick_Sort/Quick_Sort.c diff --git a/Competitive_Coding/Algorithms/Sort/Selection_Sort/selection_sort.c b/Competitive Coding/Sorting/Selection_Sort/selection_sort.c similarity index 100% rename from Competitive_Coding/Algorithms/Sort/Selection_Sort/selection_sort.c rename to Competitive Coding/Sorting/Selection_Sort/selection_sort.c diff --git a/Competitive_Coding/Algorithms/Search/String Search/Knuth-Morris-Pratt_Algorithm.cpp b/Competitive Coding/Strings/String Search/Knuth-Morris-Pratt_Algorithm.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Search/String Search/Knuth-Morris-Pratt_Algorithm.cpp rename to Competitive Coding/Strings/String Search/Knuth-Morris-Pratt_Algorithm.cpp diff --git a/Competitive_Coding/Algorithms/Search/String Search/boyer_moore_algo b/Competitive Coding/Strings/String Search/boyer_moore_algo similarity index 100% rename from Competitive_Coding/Algorithms/Search/String Search/boyer_moore_algo rename to Competitive Coding/Strings/String Search/boyer_moore_algo diff --git a/binaryIndexedTree/Reference.txt b/Competitive Coding/Tree/Binary Indexed Tree/Reference.txt similarity index 100% rename from binaryIndexedTree/Reference.txt rename to Competitive Coding/Tree/Binary Indexed Tree/Reference.txt diff --git a/binaryIndexedTree/SPOJ_ctrick.cpp b/Competitive Coding/Tree/Binary Indexed Tree/SPOJ_ctrick.cpp similarity index 100% rename from binaryIndexedTree/SPOJ_ctrick.cpp rename to Competitive Coding/Tree/Binary Indexed Tree/SPOJ_ctrick.cpp diff --git a/binaryIndexedTree/SPOJ_invcnt.cpp b/Competitive Coding/Tree/Binary Indexed Tree/SPOJ_invcnt.cpp similarity index 100% rename from binaryIndexedTree/SPOJ_invcnt.cpp rename to Competitive Coding/Tree/Binary Indexed Tree/SPOJ_invcnt.cpp diff --git a/binaryIndexedTree/binary_indexed_tree.cpp b/Competitive Coding/Tree/Binary Indexed Tree/binary_indexed_tree.cpp similarity index 100% rename from binaryIndexedTree/binary_indexed_tree.cpp rename to Competitive Coding/Tree/Binary Indexed Tree/binary_indexed_tree.cpp diff --git a/binaryIndexedTree/range_query_range_update/SPOJ_horrible.cpp b/Competitive Coding/Tree/Binary Indexed Tree/range_query_range_update/SPOJ_horrible.cpp similarity index 100% rename from binaryIndexedTree/range_query_range_update/SPOJ_horrible.cpp rename to Competitive Coding/Tree/Binary Indexed Tree/range_query_range_update/SPOJ_horrible.cpp diff --git a/Competitive_Coding/Data Structures/Tree/Binary Tree/level_order_traversal.c b/Competitive Coding/Tree/Binary Tree/level_order_traversal.c similarity index 100% rename from Competitive_Coding/Data Structures/Tree/Binary Tree/level_order_traversal.c rename to Competitive Coding/Tree/Binary Tree/level_order_traversal.c diff --git a/Competitive_Coding/Algorithms/Minimum Spanning Tree/Kruskal/KruskalMST.cpp b/Competitive Coding/Tree/Minimum Spanning Tree/Kruskal/KruskalMST.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Minimum Spanning Tree/Kruskal/KruskalMST.cpp rename to Competitive Coding/Tree/Minimum Spanning Tree/Kruskal/KruskalMST.cpp diff --git a/Competitive_Coding/Algorithms/Minimum Spanning Tree/Prims/Prims.cpp b/Competitive Coding/Tree/Minimum Spanning Tree/Prims/Prims.cpp similarity index 100% rename from Competitive_Coding/Algorithms/Minimum Spanning Tree/Prims/Prims.cpp rename to Competitive Coding/Tree/Minimum Spanning Tree/Prims/Prims.cpp From c91ddcab46819ed8b3113d569ce686fbbbb2e6f3 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Wed, 6 Dec 2017 09:41:38 +0530 Subject: [PATCH 124/131] Create CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..d5c5fcaee --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at codeiiest@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ From cb3506468cfd756649e7f6c100480ec0bd3dd4e2 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Wed, 6 Dec 2017 12:28:42 +0530 Subject: [PATCH 125/131] Create LICENSE --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..a65e6c7ef --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 codeIIEST + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From a4f3041c097d4391fe589782175909add0f3a153 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Wed, 6 Dec 2017 12:30:17 +0530 Subject: [PATCH 126/131] Create ISSUE_TEMPLATE.md --- ISSUE_TEMPLATE.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 ISSUE_TEMPLATE.md diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..31a08c098 --- /dev/null +++ b/ISSUE_TEMPLATE.md @@ -0,0 +1,21 @@ +Maintainer: @prateekiiest + +## DESCRIPTION + +Please provide a short, clear description of the problem + +## STEPS TO REPRODUCE + +Please list the steps to reproduce the above problem + +## EXPECTED OUTCOME + +What did you expect to happen + +## ACTUAL OUTCOME + +What actually happened + +### Proposed Solution [optional] + +If you know how to solve the above, please provide details here. From 8f1599257e034db68d4b630b4bf65ab9ab8a7b12 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Wed, 6 Dec 2017 12:32:01 +0530 Subject: [PATCH 127/131] Create PULL_REQUEST_TEMPLATE.md --- PULL_REQUEST_TEMPLATE.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 PULL_REQUEST_TEMPLATE.md diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000..2e8b632b8 --- /dev/null +++ b/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,13 @@ +Thank you for your contribution. Please provide the details requested below. + +## ISSUE NUMBER + +Please provide a link to the issue this pull request addresses. + +## SHORT DESCRIPTION + +Please provide a short description of the changes. + +## TESTING + +Please provide the necessary steps to test the solution. From 654f31f3c2fdb8289ac2b589b0ddb704d12dc4be Mon Sep 17 00:00:00 2001 From: Eshan <23567081+AdvikEshan@users.noreply.github.com> Date: Wed, 6 Dec 2017 14:36:51 +0530 Subject: [PATCH 128/131] HeapSort with readme (#97) * Add files via upload * Add files via upload * Add files via upload * Delete HeapSort.cpp * Delete BucketSort.cpp * Delete RadixSort.cpp * HeapSort, RadixSort and BucketSort Added programs for HeapSort, RadixSort and BucketSort All the programs are written in C++ * Update BucketSort.cpp * Update RadixSort.cpp * Delete BucketSort.cpp * Delete HeapSort.cpp * Delete RadixSort.cpp * Readme * Delete HeapSort * Create Readme * Update Readme * Update Readme * Add files via upload * Update Readme * Update Readme * Update HeapSort.cpp * Update HeapSort.cpp * Update HeapSort.cpp * Delete HeapSort.cpp * Delete Readme * Create Readme * Add files via upload * Update HeapSort.cpp * Update HeapSort.cpp * Delete HeapSort.cpp * Delete Readme * Create Readme * Add files via upload * Rename Readme to Readme.md --- .../Sorting/Heap Sort/HeapSort.cpp | 69 +++++++++++++++++++ .../Sorting/Heap Sort/Readme.md | 16 +++++ 2 files changed, 85 insertions(+) create mode 100644 Competitive Coding/Sorting/Heap Sort/HeapSort.cpp create mode 100644 Competitive Coding/Sorting/Heap Sort/Readme.md diff --git a/Competitive Coding/Sorting/Heap Sort/HeapSort.cpp b/Competitive Coding/Sorting/Heap Sort/HeapSort.cpp new file mode 100644 index 000000000..53660adb8 --- /dev/null +++ b/Competitive Coding/Sorting/Heap Sort/HeapSort.cpp @@ -0,0 +1,69 @@ +#include +using namespace std; +#define rep(i,a,b,c) for(i=a;ib;i+=c) + +//--------------------------------------Heapify +void max_heapify(int *a, int i, int n) +{ + int l=2*i+1; + int r=2*i+2; + int largest=0; + if(l<=n and a[l]>a[i]) + largest=l; + else + largest=i; + if(r<=n and a[r]>a[largest]) + largest=r; + if(largest!=i) + { + swap(a[largest],a[i]); + max_heapify(a,largest,n); + } +} +//---------------------------------Build max Heap +void build_maxheap(int *a, int n) +{ + int i; + repp(i,n/2,-1,-1) + { + max_heapify(a,i,n); + } +} + +//-----------------------------------HeapSort +void heapsort(int *a, int n) +{ + int i; + build_maxheap(a,n); + repp(i,n,-1,-1) + { + swap(a[0],a[i]); + n--; + max_heapify(a,0,n); + } +} + +int main() +{ + int n, i, x; + cout<<"Enter no of elements of array\n"; + cin>>n; + + //Dynamic Memory Allocation + int *dynamic; + dynamic = new int[n]; + + //Input Of Elements + cout<<"Enter the elements of array :\n"; + rep(i,0,n,1) + cin>>dynamic[i]; + + heapsort(dynamic,n-1); + //Sorted Array using heap sort + cout<< "Sorted Sequence is : " ; + + rep(i,0,n,1) + cout<< dynamic[i]<<"\t"; + delete []dynamic; +} \ No newline at end of file diff --git a/Competitive Coding/Sorting/Heap Sort/Readme.md b/Competitive Coding/Sorting/Heap Sort/Readme.md new file mode 100644 index 000000000..df0c6bdc6 --- /dev/null +++ b/Competitive Coding/Sorting/Heap Sort/Readme.md @@ -0,0 +1,16 @@ +# Heap sort is a comparison based sorting technique based on Binary Heap data structure. +# Heapsort is an in-place algorithm, but it is not a stable sort. +# Heap Sort is one of the best sorting methods being in-place and with no quadratic worst-case scenarios. +# In max-heaps, maximum element will always be at the root. Heap Sort uses this property of heap to sort the array. + +Heap sort algorithm is divided into two basic parts : +(1) Creating a Heap of the unsorted list. +(2) Then a sorted array is created by repeatedly removing the largest/smallest element from the heap, and inserting it into the array. +{3) The heap is reconstructed after each removal. + +Time Complexity: Time complexity of heapify is O(logn). +Time complexity of BUILD-MAX-HEAP(A) is O(n) +and we run max_heapify N−1 times in heap_sort function, +therefore complexity of heap_sort function in each case (Best, worst and average) is O(nlogn) + +Space Complexity: O(1) From bb5df789e6c1c5c0ae380ae6617c4a453167dfe6 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Wed, 6 Dec 2017 14:48:05 +0530 Subject: [PATCH 129/131] Update ISSUE_TEMPLATE.md --- ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index 31a08c098..72c6ae063 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,4 +1,4 @@ -Maintainer: @prateekiiest + ## DESCRIPTION From 533d2b49923c275334258cdecc325db7a602e5c3 Mon Sep 17 00:00:00 2001 From: Prateek Chanda Date: Wed, 6 Dec 2017 14:56:59 +0530 Subject: [PATCH 130/131] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d7983a478..852b8944e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,6 +11,8 @@ Please proceed with a Pull Request only after you're assigned. It'd be sad if yo While making a Pull Request, please take care of the following rules: +- Make sure the master branch of your forked repo is not any commits ahead than the original master repository. +- Create a new branch from master in the forked repository. Updated your changes in that branch and not in master. - Include only one algorithm in each pull request. A PR containing more than one algorithm *will not be merged*. - Write your algorithm in a language other coders are mostly acquainted with i.e. `C`/`C++`/`Python`/`Java`. Any other language will be accepted only after discussion with the maintainers. From 475b00aec106c095aecbe341ec54b2c54d1da5f4 Mon Sep 17 00:00:00 2001 From: Nihal Date: Tue, 19 Dec 2017 19:13:47 +0530 Subject: [PATCH 131/131] GCD and Prime Factorization algos added --- .../Math/GCD and LCM/GCDEuclidsAlgorithm.c | 36 +++++++++++ .../GCD and LCM/GCDEuclidsExtendedAlgorithm.c | 41 ++++++++++++ .../Math/GCD and LCM/GCDSteinsAlgorithm.c | 63 +++++++++++++++++++ Competitive Coding/Math/GCD and LCM/README.md | 28 +++++++++ .../Divisors.c | 34 ++++++++++ .../PrimeFactorization.c | 50 +++++++++++++++ .../README.md | 43 +++++++++++++ 7 files changed, 295 insertions(+) create mode 100644 Competitive Coding/Math/GCD and LCM/GCDEuclidsAlgorithm.c create mode 100644 Competitive Coding/Math/GCD and LCM/GCDEuclidsExtendedAlgorithm.c create mode 100644 Competitive Coding/Math/GCD and LCM/GCDSteinsAlgorithm.c create mode 100644 Competitive Coding/Math/GCD and LCM/README.md create mode 100644 Competitive Coding/Math/Prime Factorisation and Divisors/Divisors.c create mode 100644 Competitive Coding/Math/Prime Factorisation and Divisors/PrimeFactorization.c create mode 100644 Competitive Coding/Math/Prime Factorisation and Divisors/README.md diff --git a/Competitive Coding/Math/GCD and LCM/GCDEuclidsAlgorithm.c b/Competitive Coding/Math/GCD and LCM/GCDEuclidsAlgorithm.c new file mode 100644 index 000000000..aaa11e278 --- /dev/null +++ b/Competitive Coding/Math/GCD and LCM/GCDEuclidsAlgorithm.c @@ -0,0 +1,36 @@ +//Program to calculate the GCD of a number by Euclids algorithm, and then find its LCM + +#include + +//Function to calculate the GCD +//It is assumed that n >= m +int gcd(int m, int n){ + + if(m == 0) + return n; + else + return gcd((n%m) , m); +} + +//Function to calculate LCM +int lcm(int m, int n, int gcdOfmn){ + + int lcm = (m * n) / gcdOfmn; + return lcm; +} + +//Driver Function +int main(){ + + int m , n ,Gcd; + //Test 1 + m = 120 , n = 210; + Gcd = gcd(m,n); + printf("\nThe GCD and LCM of %d and %d are %d and %d.", m , n , Gcd , lcm(m,n,Gcd)); + //Test 2 + m = 12 , n = 66; + Gcd = gcd(m,n); + printf("\n\nThe GCD and LCM of %d and %d are %d and %d.\n\n", m , n , Gcd , lcm(m,n,Gcd)); + return 0; +} +//End driver function diff --git a/Competitive Coding/Math/GCD and LCM/GCDEuclidsExtendedAlgorithm.c b/Competitive Coding/Math/GCD and LCM/GCDEuclidsExtendedAlgorithm.c new file mode 100644 index 000000000..ea3cbb0c3 --- /dev/null +++ b/Competitive Coding/Math/GCD and LCM/GCDEuclidsExtendedAlgorithm.c @@ -0,0 +1,41 @@ +//Program to calculate the GCD of two numbers by Extended Euclid's Algorithm and +//to find the integers x and y in the equation mx + ny = gcd(m,n) +//n is assumed to be following the following constariant: n >= m + +#include + +//Function to caluclate the GCD of two numbers with euclid's extended Algorithm +int gcdExtended(int m, int n, int *x, int *y){ + + //m and n are the integers + //x and y are the integers in the equation mx + ny = gcd(m,n) + //x1 and y1 are the intermediate x and y in the recursive calculate + int x1 , y1 , gcd; + if(m == 0){ + + *x = 0; + *y = 1; + return n; + } + gcd = gcdExtended(n%m,m,&x1,&y1); + *x = y1 - (n/m)*x1; + *y = x1; + return gcd; +} + +//Driver Function +int main(){ + + int m , n , gcd , x , y; + //Test 1 + m = 74 , n = 120; + gcd = gcdExtended(m,n,&x,&y); + printf("\n The GCD is %d and x = %d , y = %d.", gcd , x , y); + //Test 2 + m = 12 , n = 22; + gcd = gcdExtended(m,n,&x,&y); + printf("\n The GCD is %d and x = %d , y = %d.", gcd , x , y); + + return 0; +} +//Driver function ends diff --git a/Competitive Coding/Math/GCD and LCM/GCDSteinsAlgorithm.c b/Competitive Coding/Math/GCD and LCM/GCDSteinsAlgorithm.c new file mode 100644 index 000000000..3ba7a2455 --- /dev/null +++ b/Competitive Coding/Math/GCD and LCM/GCDSteinsAlgorithm.c @@ -0,0 +1,63 @@ +//Program to calculate the GCD of two numbers by Stein's Algorithm and + +#include +#include //For pow function + + +int gcdSteins(int m ,int n, int *k){ + + //m and n are the integers. + //k counts the number of common '2' factors + + //Base conditions + if(m == n) + return m; + if(m == 0) + return n; + if(n == 0) + return m; + //End of base conditions + + //To check if m is even + if(~(m & 1) == 1){ + + //if n is even + if(~(n & 1) == 1){ + *k = *k + 1; + return gcdSteins((m >> 1) , (n >> 1) , k); // m and n are divided by two. k is incremented + } + + //if n is odd + return gcdSteins((m >> 1) , n , k); // m is divided by 2 + } + + //m is odd and n is even case + if(~(n & 1) == 1) + return gcdSteins(m ,(n >> 1) ,k); // n is divided by 2 + + //Both are odd case + if(m > n) + return gcdSteins(((m-n)>>1) , n , k); + + return gcdSteins(((n-m)>>1) , m , k); +} + +//Driver Function +int main(){ + + int m , n ,Gcd , k; + //Test 1 + m = 120 , n = 210 , k = 0; + Gcd = gcdSteins(m,n,&k); + Gcd *= pow(2,k); + printf("\nThe GCD of %d and %d is %d.", m , n , Gcd); + + //Test 2 + m = 2 , n = 6 , k = 0; + Gcd = gcdSteins(m,n,&k); + Gcd *= pow(2,k); + printf("\nThe GCD of %d and %d is %d.\n\n", m , n , Gcd); + + return 0; +} +//End driver function diff --git a/Competitive Coding/Math/GCD and LCM/README.md b/Competitive Coding/Math/GCD and LCM/README.md new file mode 100644 index 000000000..a5721fd1d --- /dev/null +++ b/Competitive Coding/Math/GCD and LCM/README.md @@ -0,0 +1,28 @@ +#CALCULATING GCD AND LCM USING THREE DIFFERENT APPROACHES +##Using Euclid's Algorithm + +This algorithm works on the famous **Euclid's Algorithm** which states that 'GCD(m,n) = GCD(n%m , m)' and 'GCD(0,m) = m'. +It is coded in a recurisve manner. + +LCM calculation has one common formula, namely, 'LCM(m,n) = (m*n)/GCD(m,n)'. + +##Using Extended Euclid's Algorithm + +The Euclid's Extended Algorithm states that there exists two integers x and y such that 'mx + ny = GCD(m,n)'. +This algorithm finds the GCD of the integers along with above said integers. + +##Using Steins Algorithm + +Stein’s algorithm or binary GCD algorithm is an algorithm that computes the greatest common divisor of two non-negative integers. Stein’s algorithm replaces division with arithmetic shifts, comparisons, and subtraction. + +The algorithm: + +1. If both a and b are 0, gcd is zero gcd(0, 0) = 0. +2. Gcd(a, 0) = a and gcd(0, b) = b because everything divides 0. +3. If a and b are both even, gcd(a, b) = 2*gcd(a/2, b/2) because 2 is a common divisor. Multiplication with 2 can be done with bitwise shift operator. +4. If a is even and b is odd, gcd(a, b) = gcd(a/2, b). Similarly, if a is odd and b is even, then gcd(a, b) = gcd(a, b/2). It is because 2 is not a common divisor. +5. If both a and b are odd, then gcd(a, b) = gcd(|a-b|/2, b). Note that difference of two odd numbers is even +6. Repeat steps 3–5 until a = b, or until a = 0. In either case, the GCD is power(2, k) * b, where power(2, k) is 2 raise to the power of k and k is the number of common factors of 2 found in step 2. + + + diff --git a/Competitive Coding/Math/Prime Factorisation and Divisors/Divisors.c b/Competitive Coding/Math/Prime Factorisation and Divisors/Divisors.c new file mode 100644 index 000000000..2952ac26c --- /dev/null +++ b/Competitive Coding/Math/Prime Factorisation and Divisors/Divisors.c @@ -0,0 +1,34 @@ +//Program to find the divisors of an integer n in O(root n) time + +#include +#include + +// Function to print the divisors of integer n +void printDivisors(int n){ + + printf("\n\nThe divisors of %d are: ", n); + //Iterates from i=1 to root n and print divisors as i and n/i at one go + for (int i=1; i<=sqrt(n)+1; i++) + { + if (n%i==0) + { + // If divisors are equal, print only one + if (n/i == i) + printf("%d ", i); + + else // Otherwise print both + printf("%d %d ", i, n/i); + } + } + printf("\n\n"); +} + +//Driver Function +void main() +{ + printf("\n\n\tDIVISOR PROGRAM"); + int n; + printf("\n\nEnter the integer: "); + scanf("%d" , &n); + printDivisors(n); +} diff --git a/Competitive Coding/Math/Prime Factorisation and Divisors/PrimeFactorization.c b/Competitive Coding/Math/Prime Factorisation and Divisors/PrimeFactorization.c new file mode 100644 index 000000000..8ceb8fc14 --- /dev/null +++ b/Competitive Coding/Math/Prime Factorisation and Divisors/PrimeFactorization.c @@ -0,0 +1,50 @@ +//Program to find the prime factorization of a number in O(n^1/2) time + +#include +#include + +//Function to print prime factors of an integer n +void primeFactorization(int n){ + + printf("\n\nThe prime factors of %d are: ", n); + + //To print factor as 2 until the number is odd + while(n % 2 == 0){ + + printf("2 "); + n = n / 2; //Dividing number by 2 + } + + //The number would be odd after exiting loop + //Factors will be checked from i = 3 to root n, increasing i by 2 every loop, as all even numbers are taken acre of + int i = 3 , sqrtN = sqrt(n); + while(i<=sqrtN){ + + //If i is a prime factor of n + while(n%i==0){ + + printf("%d ", i); + n = n / i; + } + + i = i + 2; + } + + //If n > 2 after these steps, this tells us that n is aprime numbers + if(n > 2){ + + printf("%d " , n); + } + printf("\n\n"); +} + +//Driver function +void main(){ + + printf("\n\n\tPRIME FACTORIZATION"); + printf("\n\nEnter number: "); + int n; + scanf("%d" , &n); + primeFactorization(n); +} +//Main ends diff --git a/Competitive Coding/Math/Prime Factorisation and Divisors/README.md b/Competitive Coding/Math/Prime Factorisation and Divisors/README.md new file mode 100644 index 000000000..8e11e243c --- /dev/null +++ b/Competitive Coding/Math/Prime Factorisation and Divisors/README.md @@ -0,0 +1,43 @@ +#PRIME FACOTRIZATION AND DIVISOR ALGORITHM +##PRIME FACTORZATION + +Given a number n, write an efficient function to print all prime factors of n. For example, if the input number is 12, then output should be “2 2 3”. And if the input number is 315, then output should be “3 3 5 7”. + +###Algorithm + +1. While n is divisible by 2, print 2 and divide n by 2. +2. After step 1, n must be odd. Now start a loop from i = 3 to square root of n. While i divides n, print i and divide n by i, increment i by 2 and continue. +3. If n is a prime number and is greater than 2, then n will not become 1 by above two steps. So print n if it is greater than 2. + +###Working + +The steps 1 and 2 take care of composite numbers and step 3 takes care of prime numbers. To prove that the complete algorithm works, we need to prove that steps 1 and 2 actually take care of composite numbers. This is clear that step 1 takes care of even numbers. And after step 1, all remaining prime factor must be odd (difference of two prime factors must be at least 2), this explains why i is incremented by 2. +Now the main part is, the loop runs till square root of n not till. To prove that this optimization works, let us consider the following property of composite numbers. + +Every composite number has at least one prime factor less than or equal to square root of itself. + +This property can be proved using counter statement. Let a and b be two factors of n such that a*b = n. If both are greater than √n, then a.b > √n, * √n, which contradicts the expression “a * b = n”. + +In step 2 of the above algorithm, we run a loop and do following in loop +* Find the least prime factor i (must be less than √n,) +* Remove all occurrences i from n by repeatedly dividing n by i. +* Repeat steps a and b for divided n and i = i + 2. The steps a and b are repeated till n becomes either 1 or a prime number. + +###Time Complexity + +O(n^1/2), where n is the integer. + + +##DIVISORS + +Given a natural number n, print all distinct divisors of it. + +###Algorithm + +1. Iterate from i = 1 to i = root(n) + 1. +2. If i divides n, print i along with (n/i), thus reducing time. + +###Time Complexity + +O(n^1/2), where n is the integer. +