sort c program
DESCRIPTION
AlgorithmTRANSCRIPT
![Page 1: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/1.jpg)
Founded 1991 by Md. Alimullah Miyan
Project on
Program on Different Algorithm by C/C++/Java
Data Structure and Algorithms
SUBMITTED BY
NAME : Md. Nurul Kabir
ID : 12303012
PROGRAM : BCSE
SUBJECT : Data Structure and Algorithms
SUBJECT CODE : CSC 391
SECTION : Evening
DATE OF SUBMISSION: 13th
April 2015
SUBMITTED TO
Md. Shafenoor Amin Faculty Member, the Department of Computer Science and Engineering
![Page 2: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/2.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
2
April 13, 2015
To
Md. Shafenoor Amin
Lecturer
College of Engineering and Technology (CEAT)
Department of Computer Science & Engineering.
IUBAT-International University of Business Agriculture & Technology
4Embankment Drive Road, Sector-10, Uttara Model Town, Dhaka-1230, Bangladesh
Subject: Submitting a project on “Program on Different Algorithm by C/C++/Java ”
Dear Sir,
I have selected “Program on Different Algorithm by C” as my project. I pleased to
propose Language C to you for my project. By this project I can show my efficiency of
technical work effectively.
For your kind consideration I inform you that I am trying my best to prepare the project. I
have immense pleasure to have the study on this which is effective in our practical field
as well as our study sector. It was great opportunities for me to work on this project
actualize my theoretical knowledge in the practical area.
I express my heart full gratitude to you to through this project and make your valuable
comments. It would be very kind of you, if you please evaluate my performance
regarding this project.
Sincerely
…………………………
Md. Nurul Kabir
ID#12303012
![Page 3: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/3.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
3
Bubble sort
#include <stdio.h>
int main()
{
int kabir[100], n, c, d, swap;
printf("Please Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d", & kabir[c]);
for (c = 0 ; c < ( n - 1 ); c++)
{
for (d = 0 ; d < n - c - 1; d++)
{
if (kabir [d] > kabir [d+1])
{
swap = kabir [d];
kabir [d] = kabir [d+1];
kabir [d+1] = swap;
}
}
}
printf(" All Sorted list are:\n");
for ( c = 0 ; c < n ; c++ )
![Page 4: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/4.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
4
printf("%d\n", kabir[c]);
return 0;
}
Insertion sort
#include <stdio.h>
int main()
{
int n, kabir[1000], c, d, t;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++) {
scanf("%d", & kabir [c]);
}
for (c = 1 ; c <= n - 1; c++) {
d = c;
while ( d > 0 && kabir [d] < kabir [d-1]) {
t = kabir [d];
kabir [d] = kabir [d-1];
kabir [d-1] = t;
d--;
}
![Page 5: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/5.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
5
}
printf("Sorted list in ascending order:\n");
for (c = 0; c <= n - 1; c++) {
printf("%d\n", kabir [c]);
}
return 0;
}
Selection sort
#include <stdio.h>
int main()
{
int kabir[100], n, c, d, pos, swap;
printf("Enter number of elements\n");
scanf("%d", &n);
printf("Enter %d integers\n", n);
for ( c = 0 ; c < n ; c++ )
scanf("%d", & kabir [c]);
for ( c = 0 ; c < ( n - 1 ) ; c++ )
{
pos = c;
![Page 6: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/6.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
6
for ( d = c + 1 ; d < n ; d++ )
{
if (kabir [pos] > kabir [d] )
pos = d;
}
if (pos!= c )
{
swap = kabir [c];
kabir [c] = kabir [pos];
kabir [pos] = swap;
}
}
printf("Sorted list are:\n");
for ( c = 0 ; c < n ; c++ )
printf("%d\n", kabir [c]);
return 0;
}
![Page 7: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/7.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
7
Marge Sort
#include<stdio.h>
#include<conio.h>
void merge(int [],int ,int ,int );
void part(int [],int ,int );
int main()
{
int kabir[30];
int i,size;
printf("Enter number of elements : ");
scanf("%d",&size);
for(i=0; i<size; i++)
{
printf("Enter %d element : ",i+1);
scanf("%d",& kabir [i]);
}
part(kabir,0,size-1);
printf("\n Sorted elements are\n\n");
for(i=0; i<size; i++)
printf("%d ", kabir [i]);
getch();
return 0;
}
![Page 8: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/8.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
8
void part(int kabir[],int min,int max)
{
int mid;
if(min<max)
{
mid=(min+max)/2;
part(kabir,min,mid);
part(kabir,mid+1,max);
merge(kabir,min,mid,max);
}
}
void merge(int kabir [],int min,int mid,int max)
{
int tmp[30];
int i,j,k,m;
j=min;
m=mid+1;
for(i=min; j<=mid && m<=max ; i++)
{
if(kabir [j]<= kabir [m])
{
tmp[i]= kabir [j];
j++;
}
else
![Page 9: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/9.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
9
{
tmp[i]= kabir [m];
m++;
}
}
if(j>mid)
{
for(k=m; k<=max; k++)
{
tmp[i]= kabir[k];
i++;
}
}
else
{
for(k=j; k<=mid; k++)
{
tmp[i]= kabir[k];
i++;
}
}
for(k=min; k<=max; k++)
kabir [k]=tmp[k];
}
![Page 10: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/10.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
0
Quick
#include<stdio.h>
#include<conio.h>
void qsort(int kabir[20], int fst, int last);
int main()
{
int kabir [30];
int i,size;
printf("Enter number of the elements : ");
scanf("%d",&size);
for(i=0; i<size; i++)
scanf("%d",& kabir [i]);
qsort(kabir,0,size-1);
printf("Quick sorted elements are as : \n");
for(i=0; i<size; i++)
printf("%d\t", kabir[i]);
getch();
return 0;
}
void qsort(int kabir[20], int fst, int last)
{
int i,j,pivot,tmp;
if(fst<last)
{
![Page 11: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/11.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
1
pivot=fst;
i=fst;
j=last;
while(i<j)
{
while(kabir [i]<= kabir [pivot] && i<last)
i++;
while(kabir [j]> kabir [pivot])
j--;
if(i<j)
{
tmp= kabir [i];
kabir [i]= kabir [j];
kabir [j]=tmp;
}
}
tmp= kabir [pivot];
kabir [pivot]= kabir [j];
kabir [j]=tmp;
qsort(kabir,fst,j-1);
qsort(kabir,j+1,last);
}
}
![Page 12: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/12.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
2
Bucket Sort
#include <stdio.h>
void Bucket_Sort(int nurul[], int n)
{
int i, j;
int count[n];
for (i = 0; i < n; i++)
count[i] = 0;
for (i = 0; i < n; i++)
(count[nurul [i]])++;
for (i = 0, j = 0; i < n; i++)
for(; count[i] > 0; (count[i])--)
nurul [j++] = i;
}
int main()
{
int nurul [100], i, num;
printf("Please Enter the size of array : ");
scanf("%d", &num);
for (i = 0; i < num; i++)
scanf("%d", & nurul [i]);
printf("\nThe array of elements after sorting : \n");
![Page 13: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/13.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
3
Bucket_Sort(nurul, num);
for (i = 0; i < num; i++)
printf("%d ", nurul [i]);
printf("\n");
return 0;
}
Radix sort
#include<stdio.h>
#include<conio.h>
int radix_sort(int kabir[], int n);
void main()
{
int kabir [100],n,i;
printf("Enter the number of elements: ");
scanf("%d",&n);
printf("\nEnter the elements \n");
for(i = 0 ; i < n ; i++ )
{
scanf("%d",& kabir [i]);
}
printf("\n");
radix_sort(kabir,n);
printf("\nArray After Radix Sort: ");
![Page 14: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/14.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
4
for(i = 0; i < n; i++)
{
printf("%8d", kabir [i]);
}
printf("\n");
getch();
}
radix_sort(int kabir[], int n)
{
int bucket[10][5],buck[10],b[10];
int i,j,k,l,num,div,large,passes;
div=1;
num=0;
large= kabir [0];
for(i=0 ; i<n ; i++)
{
if(kabir [i] > large)
{
large = kabir [i];
}
while(large > 0)
{
num++;
large = large/10;
}
![Page 15: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/15.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
5
for(passes=0 ; passes<num ; passes++)
{
for(k=0 ; k<10 ; k++)
{
buck[k] = 0;
}
for(i=0 ; i<n ;i++)
{
l = ((kabir [i]/div)%10);
bucket[l][buck[l]++] = kabir[i];
}
i=0;
for(k=0 ; k<10 ; k++)
{
for(j=0 ; j<buck[k] ; j++)
{
kabir[i++] = bucket[k][j];
}
}
div*=10;
}
}
}
![Page 16: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/16.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
6
Linear Search
#include <stdio.h>
int main()
{
int kabir[100], search, c, n;
printf("Enter the number of elements \n");
scanf("%d",&n);
printf("Enter %d integer(s)\n", n);
for (c = 0; c < n; c++)
scanf("%d", & kabir [c]);
printf("Enter the number to search\n");
scanf("%d", &search);
for (c = 0; c < n; c++)
{
if (kabir [c] == search)
{
printf("%d is present at location %d.\n", search, c+1);
break;
}
}
if (c == n)
printf("%d is not present in array.\n", search);
return 0;
}
![Page 17: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/17.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
7
Binary Search
#include <stdio.h>
int main()
{
int c, first, last, middle, n, search, kabir[100];
printf("Enter number of elements\n");
scanf("%d",&n);
printf("Enter %d integers\n", n);
for (c = 0; c < n; c++)
scanf("%d",& kabir [c]);
printf("Enter value to find\n");
scanf("%d", &search);
first = 0;
last = n - 1;
middle = (first+last)/2;
while (first <= last) {
if (kabir[middle] < search)
first = middle + 1;
else if (kabir [middle] == search) {
printf("%d found at location %d.\n", search, middle+1);
break;
}
else
![Page 18: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/18.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
8
last = middle - 1;
middle = (first + last)/2;
}
if (first > last)
printf("Not found! %d is not present in the list.\n", search);
return 0;
}
Depth First Search (DFS)
#include<stdio.h>
#include<conio.h>
int nurul[20][20],reach[20],n;
void dfs(int v)
{
int i;
reach[v]=1;
for(i=1;i<=n;i++)
if(nurul [v][i] && !reach[i])
{
printf("\n %d->%d",v,i);
dfs(i);
}
}
void main()
![Page 19: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/19.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
1
9
{
int i,j,count=0;
printf("\n Enter number of vertices:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
reach[i]=0;
for(j=1;j<=n;j++)
nurul [i][j]=0;
}
printf("\n Enter the adjacency matrix:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&nurul[i][j]);
dfs(1);
printf("\n");
for(i=1;i<=n;i++) {
if(reach[i])
count++;
}
if(count==n)
printf("\n Graph is connected");
else
printf("\n Graph is not connected");
}
![Page 20: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/20.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
2
0
Breadth First Search (BFS)
#include<stdio.h>
#include<conio.h>
int kabir[20][20],q[20],visited[20],n,i,j,f=0,r=-1;
void bfs(int v)
{
for(i=1;i<=n;i++)
if(kabir[v][i] && !visited[i])
q[++r]=i;
if(f<=r)
{
visited[q[f]]=1;
bfs(q[f++]);
}
}
void main()
{
int v;
printf("\n Enter the number of vertices:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
q[i]=0;
visited[i]=0;
}
![Page 21: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/21.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
2
1
printf("\n Enter graph data in matrix form:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&kabir[i][j]);
printf("\n Enter the starting vertex:");
scanf("%d",&v);
bfs(v);
printf("\n The node which are reachable are:\n");
for(i=1;i<=n;i++)
if(visited[i])
printf("%d\t",i);
else
printf("\n Bfs is not possible");
getch();
}
warshall
#include<stdio.h>
#include<conio.h>
#include<math.h>
int max(int,int);
void warshal(int p[10][10],int n)
{
int i,j,k;
![Page 22: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/22.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
2
2
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
p [i][j]=max(p [i][j], p [i][k]&& p [k][j]);
}
int max(int a,int b)
{ ;
if(a>b)
return(a);
else
return(b);
}
void main()
{
int p [10][10]={0},n,e,u,v,i,j;
printf("\n Enter the number of vertices:");
scanf("%d",&n);
printf("\n Enter the number of edges:");
scanf("%d",&e);
for(i=1;i<=e;i++)
{
printf("\n Enter the end vertices of edge %d:",i);
scanf("%d%d",&u,&v);
p[u][v]=1;
}
![Page 23: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/23.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
2
3
printf("\n Matrix of input data: \n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%d\t", p[i][j]);
printf("\n");
}
warshal(p,n);
printf("\n Transitive closure: \n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%d\t", p[i][j]);
printf("\n");
}
getch();
}
Dijkstra
#include "stdio.h"
#include "conio.h"
#define infinity 999
void dij(int n,int v,int cost[10][10],int dist[])
{
![Page 24: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/24.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
2
4
int i,u,count,w,flag[10],min;
for(i=1;i<=n;i++)
flag[i]=0,dist[i]=cost[v][i];
count=2;
while(count<=n)
{
min=99;
for(w=1;w<=n;w++)
if(dist[w]<min && !flag[w])
min=dist[w],u=w;
flag[u]=1;
count++;
for(w=1;w<=n;w++)
if((dist[u]+cost[u][w]<dist[w]) && !flag[w])
dist[w]=dist[u]+cost[u][w];
}
}
void main()
{
int n,v,i,j,cost[10][10],dist[10];
printf("\n Enter the number of nodes:");
scanf("%d",&n);
printf("\n Enter the cost matrix:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
![Page 25: Sort c Program](https://reader034.vdocuments.net/reader034/viewer/2022052603/55cf8f27550346703b9970bb/html5/thumbnails/25.jpg)
Project |CSC 391 |MSA
Pro
gra
m o
n D
iffe
ren
t A
lgo
rith
m b
y C
2
5
{
scanf("%d",&cost[i][j]);
if(cost[i][j]==0)
cost[i][j]=infinity;
}
printf("\n Enter the source matrix:");
scanf("%d",&v);
dij(n,v,cost,dist);
printf("\n Shortest path:\n");
for(i=1;i<=n;i++)
if(i!=v)
printf("%d->%d,cost=%d\n",v,i,dist[i]);
getch();
}