- #include<stdio.h>
- #include<limits.h>
- int n;
- int adj[10][10],vi[10];
- int dist[10];
- void shortest(int v);
- int min();
- int main(){
- int i,j,s;
- printf("enter number of vertices\n");
- scanf("%d",&n);
- for(i=1;i<=n;i++){
- dist[i]=INT_MAX;
- printf("%d\t",dist[i]);
- }
- printf("enter adjacency matrix\n");
- for(i=1;i<=n;i++)
- for(j=1;j<=n;j++)
- scanf("%d",&adj[i][j]);
- printf("enter source vertex to start\n");
- scanf("%d",&s);
- shortest(s);
- printf("shortest distances from vertex %d are\n",s);
- for(i=1;i<=n;i++){
- if(dist[i]<INT_MAX&&vi[i]==1)
- printf("cost:%d\tedge:(%d,%d)\n",dist[i],s,i);
- }
- return 0;
- }
- void shortest(int v){
- int i,j,u;
- for(i=1;i<=n;i++){
- vi[i]=-1;
- if(adj[v][i]!=0)
- dist[i]=adj[v][i];
- }
- vi[v]=1;
- for(j=2;j<=n;j++){
- u=min();
- printf("%d\n",u);
- vi[u]=1;
- for(i=1;i<=n;i++){
- if((adj[u][i]!=0)&&(dist[i]>(dist[u]+adj[u][i]))&&(vi[i]==-1)){
- dist[i]=(dist[u]+adj[u][i]);
- }
- }
- }
- return;
- }
- int min(){
- int i,t=dist[1],j;
- for(i=1;i<=n;i++){
- if((dist[i]<t)&&(vi[i]==-1))
- {
- t=dist[i];
- }}
- for(j=1;j<=n;j++){
- if(t==dist[j]&&vi[j]==-1)
- break;}
- return j;
- }
This blog will serve the purpose for all types of c programs and all technology related details
Thursday, 22 February 2018
SINGLE SOURCE SHORTEST PATH PROBLEM(DIJKSTRA'S ALGORITHM) 'C' PROGRAM
Wednesday, 7 February 2018
QUICK SORT -'C' PROGRAM
#include<stdio.h>
#include<limits.h>
#define max 25
int arr[max];
int partition(int arr[],int l,int h);
void quick(int l,int h);
int main(){
int n;
printf("enter num: \n");
scanf("%d",&n);
printf("enter array elements\n");
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
}
arr[n]=INT_MAX;
quick(0,n);
printf("elements after sorting are\n");
for(int i=0;i<n;i++)
printf("%d\t",arr[i]);
}
int partition(int arr[],int l,int h)
{
int v=arr[l],i=l,j=h,temp;
do{
do{
i=i+1;
}while(arr[i]<v);
do{
j=j-1;
}while(arr[j]>v);
if (i<j)
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}while(i<j);
arr[l]=arr[j];arr[j]=v;
return j;
}
void quick(int l,int h){
int j;
if(l<h)
{
j=partition(arr,l,h);
quick(l,j);
quick(j+1,h);
}
}
#include<limits.h>
#define max 25
int arr[max];
int partition(int arr[],int l,int h);
void quick(int l,int h);
int main(){
int n;
printf("enter num: \n");
scanf("%d",&n);
printf("enter array elements\n");
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
}
arr[n]=INT_MAX;
quick(0,n);
printf("elements after sorting are\n");
for(int i=0;i<n;i++)
printf("%d\t",arr[i]);
}
int partition(int arr[],int l,int h)
{
int v=arr[l],i=l,j=h,temp;
do{
do{
i=i+1;
}while(arr[i]<v);
do{
j=j-1;
}while(arr[j]>v);
if (i<j)
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}while(i<j);
arr[l]=arr[j];arr[j]=v;
return j;
}
void quick(int l,int h){
int j;
if(l<h)
{
j=partition(arr,l,h);
quick(l,j);
quick(j+1,h);
}
}
Subscribe to:
Posts (Atom)
FERMATS LITTLE THEOREM
import java.math.*; import java.io.*; import java.util.Scanner; public class Main { public static void main(String[] args) { Sca...
-
#include<stdio.h> #include<stdlib.h> struct Tnode{ struct Tnode*pleft; struct Tnode*pright;char ch; }; struct Tnode *st...
-
import java.io.*; import java.util.*; import java.math.*; import java.lang.Math; public class Main { public static void main(String...