sort c program

25
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: 13 th April 2015 SUBMITTED TO Md. Shafenoor Amin Faculty Member, the Department of Computer Science and Engineering

Upload: nurulkabir99

Post on 20-Dec-2015

221 views

Category:

Documents


2 download

DESCRIPTION

Algorithm

TRANSCRIPT

Page 1: Sort c Program

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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();

}