Skip to content

Commit ceb070e

Browse files
authored
Initialize
1 parent 6e73b6f commit ceb070e

8 files changed

+441
-0
lines changed

Binary Search.C

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Binary Search //
2+
3+
#include<stdio.h>
4+
int main()
5+
{
6+
int A[12]={-2, -1, 0, 4, 6, 8, 9, 10, 45, 78, 89, 100},T,t;
7+
scanf("%d",&T);
8+
for(t=0;t<T;t=t+1)
9+
{
10+
int mid,i,n=12,left,right,k;
11+
scanf("%d",&k);
12+
left=0;
13+
right=n-1;
14+
while(left<=right)
15+
{
16+
mid=(left+right)/2;
17+
if(A[mid]==k)
18+
{
19+
printf("%d found at index %d.\n",k,mid);
20+
break;
21+
}
22+
else if(A[mid]<k)
23+
{
24+
left=mid+1;
25+
}
26+
else
27+
{
28+
right=mid-1;
29+
}
30+
}
31+
if(left>right)
32+
{
33+
printf("%d not found.\n",k);
34+
}
35+
}
36+
return(0);
37+
}

Bubble Sort.C

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Bubble Sort //
2+
3+
#include<stdio.h>
4+
int main()
5+
{
6+
int A[1000], n, i, j, temp, flag;
7+
scanf("%d", &n);
8+
for(i=0;i<n;i=i+1)
9+
{
10+
scanf("%d", &A[i]);
11+
}
12+
for(j=n-1;j>=0;j=j-1)
13+
{
14+
flag=0;
15+
for(i=0;i<=j-1;i=i+1)
16+
{
17+
if(A[i]>A[i+1])
18+
{
19+
temp=A[i];
20+
A[i]=A[i+1];
21+
A[i+1]=temp;
22+
flag=1;
23+
}
24+
}
25+
if(flag==0)
26+
{
27+
break;
28+
}
29+
}
30+
for(i=0;i<n;i=i+1)
31+
{
32+
printf("%d ", A[i]);
33+
}
34+
}

Count Sort.C

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Count Sort //
2+
3+
#include<stdio.h>
4+
#include<stdlib.h>
5+
int main()
6+
{
7+
int n, A[1000], max=-1, i, count[10000], sumcount[10000], result[10000];
8+
scanf("%d", &n);
9+
for(i=0;i<n;i=i+1)
10+
{
11+
scanf("%d", &A[i]);
12+
if(A[i]>max)
13+
{
14+
max=A[i];
15+
}
16+
}
17+
for(i=0;i<=max;i=i+1)
18+
{
19+
count[i]=0;
20+
}
21+
for(i=0;i<n;i=i+1)
22+
{
23+
count[A[i]]=count[A[i]]+1;
24+
}
25+
sumcount[0]=count[0];
26+
for(i=0;i<=max;i=i+1)
27+
{
28+
sumcount[i]=sumcount[i-1]+count[i];
29+
}
30+
for(i=0;i<n;i=i+1)
31+
{
32+
result[sumcount[A[i]]]=A[i];
33+
sumcount[A[i]]=sumcount[A[i]]-1;
34+
}
35+
for(i=0;i<n;i=i+1)
36+
{
37+
printf("%d ", result[i]);
38+
}
39+
}

Heap Sort.C

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
// Heap Sort //
2+
3+
#include<stdio.h>
4+
int main()
5+
{
6+
int n, A[10000], i, pos, temp, loc, max, result[10000], k, j;
7+
scanf("%d", &n);
8+
for(i=0;i<n;i=i+1)
9+
{
10+
scanf("%d", &A[i]);
11+
}
12+
for(i=n/2 ;i>=0; i=i-1)
13+
{
14+
pos=i;
15+
while(pos<=n-1)
16+
{
17+
if(2*pos+2<=n-1)
18+
{
19+
if(A[2*pos+1]>A[2*pos+2])
20+
{
21+
max=A[2*pos+1];
22+
loc=2*pos+1;
23+
}
24+
else
25+
{
26+
max=A[2*pos+2];
27+
loc=2*pos+2;
28+
}
29+
if(max>A[pos])
30+
{
31+
temp=A[pos];
32+
A[pos]=A[loc];
33+
A[loc]=temp;
34+
pos=loc;
35+
}
36+
else
37+
{
38+
break;
39+
}
40+
}
41+
else if(2*pos+1==n-1)
42+
{
43+
if(A[pos]<A[2*pos+1])
44+
{
45+
temp=A[pos];
46+
A[pos]=A[2*pos+1];
47+
A[2*pos+1]=temp;
48+
pos=2*pos+1;
49+
}
50+
else
51+
{
52+
break;
53+
}
54+
}
55+
else
56+
{
57+
break;
58+
}
59+
}
60+
}
61+
62+
63+
k=n-1;
64+
while(k>=0)
65+
{
66+
result[k]=A[0];
67+
A[0]=A[k];
68+
k=k-1;
69+
pos=0;
70+
while(pos<=k)
71+
{
72+
if(2*pos+2<=k)
73+
{
74+
if(A[2*pos+1]>A[2*pos+2])
75+
{
76+
max=A[2*pos+1];
77+
loc=2*pos+1;
78+
}
79+
else
80+
{
81+
max=A[2*pos+2];
82+
loc=2*pos+2;
83+
}
84+
if(max>A[pos])
85+
{
86+
temp=A[pos];
87+
A[pos]=A[loc];
88+
A[loc]=temp;
89+
pos=loc;
90+
}
91+
else
92+
{
93+
break;
94+
}
95+
}
96+
else if(2*pos+1==k)
97+
{
98+
if(A[pos]<A[2*pos+1])
99+
{
100+
temp=A[pos];
101+
A[pos]=A[2*pos+1];
102+
A[2*pos+1]=temp;
103+
pos=2*pos+1;
104+
}
105+
else
106+
{
107+
break;
108+
}
109+
}
110+
else
111+
{
112+
break;
113+
}
114+
}
115+
}
116+
for(i=0;i<n;i=i+1)
117+
{
118+
printf("%d ", result[i]);
119+
}
120+
}

Insertion Sort.C

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Insertion Sort //
2+
3+
#include<stdio.h>
4+
int main()
5+
{
6+
int n, A[1000], i, j, temp, pos;
7+
scanf("%d", &n);
8+
for(i=0;i<n;i=i+1)
9+
{
10+
scanf("%d", &A[i]);
11+
}
12+
for(i=0;i<n;i=i+1)
13+
{
14+
pos=i;
15+
for(j=i-1;j>=0;j=j-1)
16+
{
17+
if(A[j]>A[pos])
18+
{
19+
temp=A[pos];
20+
A[pos]=A[j];
21+
A[j]=temp;
22+
pos=j;
23+
}
24+
else
25+
{
26+
break;
27+
}
28+
}
29+
}
30+
for(i=0;i<n;i=i+1)
31+
{
32+
printf("%d ", A[i]);
33+
}
34+
}

Merge Sort.C

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// Merge Sort //
2+
3+
#include<stdio.h>
4+
5+
void merge(int A[], int L[], int R[], int li, int ri)
6+
{
7+
int l=0, r=0, k=-1;
8+
while(l<=li && r<=ri)
9+
{
10+
if(L[l]>R[r])
11+
{
12+
A[k+1]=R[r];
13+
k=k+1;
14+
r=r+1;
15+
}
16+
else
17+
{
18+
A[k+1]=L[l];
19+
k=k+1;
20+
l=l+1;
21+
}
22+
}
23+
while(l<=li)
24+
{
25+
A[k+1]=L[l];
26+
k=k+1;
27+
l=l+1;
28+
}
29+
while(r<=ri)
30+
{
31+
A[k+1]=R[r];
32+
k=k+1;
33+
r=r+1;
34+
}
35+
}
36+
37+
void mergesort(int A[], int n)
38+
{
39+
if(n==1)
40+
{
41+
return;
42+
}
43+
else
44+
{
45+
int mid=(n-1)/2;
46+
int L[1000], R[1000], l=-1, r=-1, i;
47+
for(i=0;i<=mid;i=i+1)
48+
{
49+
L[l+1]=A[i];
50+
l=l+1;
51+
}
52+
for(i=mid+1;i<n;i=i+1)
53+
{
54+
R[r+1]=A[i];
55+
r=r+1;
56+
}
57+
for(i=0;i<=l;i=i+1)
58+
{
59+
printf("%d ",L[i]);
60+
}
61+
printf("\n");
62+
for(i=0;i<=r;i=i+1)
63+
{
64+
printf("%d ",R[i]);
65+
}
66+
printf("\n");
67+
mergesort(L, mid+1);
68+
mergesort(R, n-mid-1);
69+
merge(A, L, R, l, r);
70+
for(i=0;i<n;i=i+1)
71+
{
72+
printf("%d ",A[i]);
73+
}
74+
printf("\n");
75+
}
76+
}
77+
78+
int main()
79+
{
80+
int n, A[1000], i;
81+
scanf("%d", &n);
82+
for(i=0;i<n;i=i+1)
83+
{
84+
scanf("%d", &A[i]);
85+
}
86+
for(i=0;i<n;i=i+1)
87+
{
88+
printf("%d ",A[i]);
89+
}
90+
printf("\n");
91+
mergesort(A, n);
92+
}

0 commit comments

Comments
 (0)