Simple Algorithm Examples
To explain examples of algorithms I used C programming language, you can use your comfortable language
If you don’t know, what is an algorithm then click below link
Algorithm for the addition of array elements
Start Step 1: initialize sum =0 Step 2: iterate loop from 0 to 9 and increment by 1 Step 3:add sum with each increment Step 4: print sum Stop
Implementation in C
#include <stdio.h> int main() { int arr[10]={1,1,1,1,1,2}; int i, sum=0; for(i=0; i<9; i++) { sum =sum+ arr[i]; } printf("Sum= %d\n", sum); return 0; }
Output
Sum = 7
Algorithm for array traversal
step 1.[Initialize counter] set k=lower_bound step 2.Repeat steps 3 and 4 while k<= Upper_bound step 3.[visit element] Apply a process to A[k] step 4.[Counter increment] set k=k+1 [End of loop] step 5.Exit
Implementation in C
#include <stdio.h> #include <stdlib.h> int main() { int k=0; int A[9]={10,20,30,40,50,60,70,80,90}; while(k<=8) { printf("%d\n",A[k]); k=k+1; } return 0; }
Output
10 20 30 40 50 60 70 80 90
Algorithm to insert an element in an array
step 1.[Initialize counter] set J=N-1 step 2.Repeat steps 3 and 4 while J>= pos step 3.[move j th element down] set A[J+1]= A[J] step 4.[Counter Decrement] set J=J-1 [End of loop] step 5.[Element insert] set A[pos]=item step 6.[Reset N] setN= N+1 step 7.Exit
Implementation in C
#include <stdio.h> #include <stdlib.h> int main() { int j, pos=5,item=6, n=8, A[9]={1,2,3,4,5,7,8,9}; j=n-1; while(j>=pos) { A[j+1]=A[j]; j=j-1; } A[pos]=item; n=n+1; for (j=0;j<n;j++) printf("%d",A[j]); return 0; }
Output
1 2 3 4 5 6 7 8 9
Algorithm to Delete an element in an array
step 1.[Initialize counter] set J=pos step 2.Repeat steps 3 and 4 while J<= N-1 step 3.[move j th element up] set A[J]= A[J+1] step 4.[Counter Increment ] set J=J+1 [END of loop] step 5.[Reset N] set N= N-1 step 6.Exit
Implementation in C
#include <stdio.h> #include <stdlib.h> int main() { int j, pos=5, n=8, A[9]={1,2,3,4,5,7,8,9}; j=pos; while(j<=n-1) { A[j]=A[j+1]; j=j+1; } n=n-1; for (j=0;j<n;j++) printf("%d",A[j]); return 0; }
Output
1 2 3 4 5 8 9
Algorithm for linear search
step 1.[enter item at the end of A] set A[N+1]=item step 2.[initialize counter] set pos=1 step 3.[search for item] Repeat while A[pos] != item Set pos=pos+1 [end of loop] step 4.[successful] if pos =N+1 then set pos =0 step 5.exit
Implementation in C
# include <stdio.h> int main() { int A[5]={4,5,6,8,9}; int n=5; int item =6; A[n+1]=item; int pos=1; while(A[pos]!=item) { pos=pos+1; } if (pos==n+1) pos=0; printf("pos=%d ",pos); return 0; }
Output
pos=2
Algorithm for finding the length of a string
step 1.[initialize counter] set J=0 step 2.Repeat step3 while STR[J] != NULL step 3.[increment the counter] J=J+1 [end of loop] step 4.[Set length] length =J step 5.exit
Implementation in C
#include <stdio.h> int main() { char str[80]={"hi iam anees"}; int j=0, length; while(str[j]!= '\0') { j++; length =j; } printf("length = %d\n",length); return 0; }
Output
length = 12
Algorithm for Extracting a substring from a string
step 1.[initialize counter] set i=pos, j=0 step 2.Repeat step 3 to 6 while STR[i] != NULL and N>0 step 3.Set subStr[j]=Str[i] step 4.[increment the counter] i=i+1 step 5.[increment the counter] j=j+1 step 6.[Reset N] set N=N-1 [end of loop] step 7.Set substr[j] =Null step 8.exit
Implementation in C
# include<stdio.h> int main() { char str[50]={"hi iam anees"}; char substr[50]={"anees"}; int i, j, m=6, n=5; i=m; j=0; while (str[i]!='\0'&& n>0) { substr[j]=str[i]; i=i+1; j=j+1; n=n+1; } substr[j]='\0'; puts(substr); return 0; }
Output
anees
Algorithm for inserting a string in the main string
step 1.[initialize counter] set I=0, J=0 and K=0 step 2.Repeat step 3 to 4 while Data[J] != NULL step 3.If I =loc Repeat while str[k]!=NULL New_data[J]=str[K] [increment the counter] J=J+1 [increment the counter] k=k+1 [end of inner loop] Else New_data[J]=data[I] [Increment counter] J=J+1 [End of if] step 4.[increment counter] I=I+1 [End of outer loop] step 5.Set new_data[J]=NULL step 6.Exit
Implementation in C
# include<stdio.h> int main() { int loc=3, i=0, j=0, k=0; char data[50]={"hi anees"}, str[50]={"i am "},new_data[50]; while(data[i]!='\0') { if(i==loc) { while(str[k]!='\0') { new_data[j]=str[k]; j=j+1; k=k+1; } } else { new_data[j]=data[i]; j=j+1; } i=i+1; } new_data[j]='\0'; puts(new_data); return 0; }
Output
hi iam anees
Algorithm for Deleting a substring from the main string
step 1. [initialize counter] set I=0, J=0 step 2.Repeat step 3 to 6 while Data[I] != NULL step 3.If I =loc Repeat while N>0 [increment counter] I=I+1 [Reset N] N=N-1 [End of inner loop] [End of if] step 4.Set New_data[J]=data[I] step 5.[increment the counter] J=J+1 step 6.[increment counter] I=I+1 [End of outer loop] step 7. Set New_data[J]=NULL step 8.Exit
Implementation in C
# include <stdio.h> int main() { int loc=3,i,j,n=3; char Data[50]={"hi iam anees"},new_Data[50]={"iam "}; i=0; j=0; while (Data[i]!='\0') { if(i==loc) { while(n>0) { i=i+1; n=n-1; } } new_Data[j]=Data[i]; j=j+1; i=i+1; } new_Data[j]='\0'; puts(new_Data); return 0; }
Output
hi anees
Algorithm for linked list traversal (or) iteration
Step 1. [initialize pointer p] set p=start Step 2. Repeat steps 3 and 4 while p!=NULL Step 3. Apply the process to p->data Step 4. [p now points to the next head] set p= p->next Step 5.[End of loop] Step 6.Exit
Implementation in C
#include <stdio.h> #include <stdlib.h> struct node { int data; struct node *next; }; int main() { struct node* head_node; struct node* second_node; struct node* third_node; /*allocate memory to 3 nodes */ head_node =(struct node*)malloc(sizeof (struct node)); second_node =(struct node*)malloc(sizeof(struct node)); third_node = (struct node*)malloc(sizeof(struct node)); head_node->data=1;/*insert data into the head_node */ head_node->next=second_node;/* link the head_node with second_node*/ second_node->data=2; second_node->next=third_node; third_node->data=3; third_node->next=NULL; struct node *p =head_node; while(p!=NULL) { printf("%d",p->data); p=p->next; } return 0; }
Output
1 2 3
Algorithm for searching a linked list
Step 1: [initialize pointer p] set p =start Step 2: Repeat steps 3 and 4 (while p!=NULL) Step 3: if(item ==p->data)then return (true) :- exit Step 4:p=p->next [End of both if and while loops] Step 5: exit
Implementation in C
#include <stdio.h> #include <stdlib.h> struct node { int data; struct node *next; }* head_node; void create_linkedlist (int A[],int n)/* function to create linked ist */ { int i; struct node *temp, *p;/* first node creation */ head_node =(struct node*)malloc(sizeof(struct node)); head_node->data=A[0]; head_node->next=NULL; p=head_node; for(i=0;i<n;i++)/*rest of the node's created by using loop*/ { temp =(struct node*)malloc(sizeof(struct node)); temp->data=A[i]; temp->next=NULL; p->next=temp; p=temp; } } void search_linkedlist(struct node *p, int item) { while(p!=NULL) { if(p->data==item) { printf("found item"); exit(0); } p=p->next; } printf("not found item"); } int main() { int A[]={10,20,30,40,50,60,70,80,90}; create_linkedlist(A,8);/*function call*/ search_linkedlist(head_node, 10);/* function call*/ return 0; }
Output
found item
Algorithm for counting no of elements in a linked list
Step 1.[initializes counter] set N=0 Step 2.[initializes pointer] set p=start Step 3.Repeat steps 4 and 5 (while p!=NULL) Step 4.[increment counter] set N=N+1 Step 5.[update pointer] p=p->next; [End of loop] Step 6. Return
Implementation in C
#include <stdio.h> #include <stdlib.h> struct node { int data; struct node *next; }* head_node; void create_linkedlist (int A[],int n)/* function to create linked ist */ { int i; struct node *temp, *p;/* first node creation */ head_node =(struct node*)malloc(sizeof(struct node)); head_node->data=A[0]; head_node->next=NULL; p=head_node; for(i=1;i<n;i++)/*rest of the node's created by using loop*/ { temp =(struct node*)malloc(sizeof(struct node)); temp->data=A[i]; temp->next=NULL; p->next=temp; p=temp; } } void count_linkedlist(struct node *p) { int n; n=0; while(p!=NULL) { n=n+1; p=p->next; } { printf("no of elements =%d",n); } } int main() { int A[]={10,20,30,40,50,60,70,80,90}; create_linkedlist(A,8);/*function call*/ count_linkedlist(head_node);/* function call*/ return 0; }
Output
no of elements =9
Algorithm for the sum of elements in a LinkedList
Step 1.[initialize pointer] set p= head node Step 2.set sum=0 Step 3.Repeat steps 4 and 5 (while p!=NULL) Step 4. Set sum=sum+p->data; Step 5. P=p->next; [End of loop] Step 6. Return sum
Implementation in C
#include <stdio.h> #include <stdlib.h> struct node { int data; struct node *next; }* head_node=NULL; void create_linkedlist (int A[],int n)/* function to create linked ist */ { int i; struct node *temp, *p;/* first node creation */ head_node =(struct node*)malloc(sizeof(struct node)); head_node->data=A[0]; head_node->next=NULL; p=head_node; for(i=1;i<n;i++)/*rest of the node's created by using loop*/ { temp =(struct node*)malloc(sizeof(struct node)); temp->data=A[i]; temp->next=NULL; p->next=temp; p=temp; } } void sum_linkedlist(struct node *p) { int sum; sum=0; while(p!=NULL) { sum=sum+p->data; p=p->next; } { printf("sum of elements =%d",sum); } } int main() { int A[]={10,20,30,40,50,60,70,80}; create_linkedlist(A,8);/*function call*/ sum_linkedlist(head_node);/* function call*/ return 0; }
Output
sum of elements =360
Resource
- https://www.udemy.com/course/datastructurescncpp/
Leave a Reply