Skip to content

Commit 50606ca

Browse files
ashwekMadhavBahl
authored andcommitted
Day 28, 29 - C (#208)
* Create Linear_Search.c * Update README.md * Create Binary_Search.c * Update README.md * Update README.md
1 parent dfbd035 commit 50606ca

File tree

4 files changed

+224
-2
lines changed

4 files changed

+224
-2
lines changed

day28/C/Linear_Search.c

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* @author : ashwek
3+
* @date : 29/01/2019
4+
*/
5+
6+
#include <stdio.h>
7+
#include <stdlib.h>
8+
9+
int linear_search(int *arr, int n, int search){
10+
11+
int i;
12+
13+
for(i=0; i<n; i++){
14+
if( arr[i] == search )
15+
return i;
16+
}
17+
18+
return -1;
19+
}
20+
21+
void main(){
22+
23+
int *arr, n, search, i;
24+
25+
printf("Enter size of array = ");
26+
scanf("%d", &n);
27+
28+
arr = (int *)malloc(sizeof(int)*n);
29+
30+
printf("Enter %d elements : ", n);
31+
for(i=0; i<n; i++){
32+
scanf("%d", &arr[i]);
33+
}
34+
35+
printf("Enter a value to search = ");
36+
scanf("%d", &search);
37+
38+
i = linear_search(arr, n, search);
39+
40+
if( i == -1 ){
41+
printf("%d not found in array", search);
42+
}
43+
else{
44+
printf("%d found at %d index", search, i);
45+
}
46+
}

day28/README.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,57 @@ public class linearSearch1 {
7373
System.out.println("undefined");
7474
}
7575
}
76-
```
76+
```
77+
78+
## C Implementation
79+
80+
### [Solution](./C/Linear_Search.c)
81+
82+
```c
83+
/*
84+
* @author : ashwek
85+
* @date : 29/01/2019
86+
*/
87+
88+
#include <stdio.h>
89+
#include <stdlib.h>
90+
91+
int linear_search(int *arr, int n, int search){
92+
93+
int i;
94+
95+
for(i=0; i<n; i++){
96+
if( arr[i] == search )
97+
return i;
98+
}
99+
100+
return -1;
101+
}
102+
103+
void main(){
104+
105+
int *arr, n, search, i;
106+
107+
printf("Enter size of array = ");
108+
scanf("%d", &n);
109+
110+
arr = (int *)malloc(sizeof(int)*n);
111+
112+
printf("Enter %d elements : ", n);
113+
for(i=0; i<n; i++){
114+
scanf("%d", &arr[i]);
115+
}
116+
117+
printf("Enter a value to search = ");
118+
scanf("%d", &search);
119+
120+
i = linear_search(arr, n, search);
121+
122+
if( i == -1 ){
123+
printf("%d not found in array", search);
124+
}
125+
else{
126+
printf("%d found at %d index", search, i);
127+
}
128+
}
129+
```

day29/C/Binary_Search.c

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
* @author : ashwek
3+
* @date : 29/01/2019
4+
*/
5+
6+
#include <stdio.h>
7+
#include <stdlib.h>
8+
9+
int binary_search(int *arr, int n, int search){
10+
11+
int low = 0, high = n-1;
12+
int mid;
13+
14+
while( low <= high ){
15+
16+
mid = (high - low) / 2 + low;
17+
18+
if( arr[mid] == search ){
19+
return mid;
20+
}
21+
else if( search < arr[mid] ){
22+
high--;
23+
}
24+
else{
25+
low++;
26+
}
27+
28+
}
29+
30+
return -1;
31+
}
32+
33+
void main(){
34+
35+
int *arr, n, search, i;
36+
37+
printf("Enter size of array = ");
38+
scanf("%d", &n);
39+
40+
arr = (int *)malloc(sizeof(int)*n);
41+
42+
printf("Enter %d elements (in sorted order) : ", n);
43+
for(i=0; i<n; i++){
44+
scanf("%d", &arr[i]);
45+
}
46+
47+
printf("Enter a value to search = ");
48+
scanf("%d", &search);
49+
50+
i = binary_search(arr, n, search);
51+
52+
if( i == -1 ){
53+
printf("%d not found in array", search);
54+
}
55+
else{
56+
printf("%d found at %d index", search, i);
57+
}
58+
}

day29/README.md

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,71 @@ console.log (binarySearch ([1, 2, 3, 4, 5, 8, 9], 8));
4545
console.log (binarySearch ([1, 2, 3, 4, 5, 8, 9], 7));
4646
```
4747

48+
### C Implementation
49+
50+
## [Solution](./C/Binary_Search.c)
51+
52+
```c
53+
/*
54+
* @author : ashwek
55+
* @date : 29/01/2019
56+
*/
57+
58+
#include <stdio.h>
59+
#include <stdlib.h>
60+
61+
int binary_search(int *arr, int n, int search){
62+
63+
int low = 0, high = n-1;
64+
int mid;
65+
66+
while( low <= high ){
67+
68+
mid = (high - low) / 2 + low;
69+
70+
if( arr[mid] == search ){
71+
return mid;
72+
}
73+
else if( search < arr[mid] ){
74+
high--;
75+
}
76+
else{
77+
low++;
78+
}
79+
80+
}
81+
82+
return -1;
83+
}
84+
85+
void main(){
86+
87+
int *arr, n, search, i;
88+
89+
printf("Enter size of array = ");
90+
scanf("%d", &n);
91+
92+
arr = (int *)malloc(sizeof(int)*n);
93+
94+
printf("Enter %d elements (in sorted order) : ", n);
95+
for(i=0; i<n; i++){
96+
scanf("%d", &arr[i]);
97+
}
98+
99+
printf("Enter a value to search = ");
100+
scanf("%d", &search);
101+
102+
i = binary_search(arr, n, search);
103+
104+
if( i == -1 ){
105+
printf("%d not found in array", search);
106+
}
107+
else{
108+
printf("%d found at %d index", search, i);
109+
}
110+
}
111+
```
112+
48113
## Java Implementation
49114
50115
### [Solution](./Java/binarySearch.java)
@@ -151,4 +216,4 @@ int main(){
151216
cout << "Recursive: " << binary_search_rec(arr, 0, size-1, val) << endl;
152217
return 0;
153218
}
154-
```
219+
```

0 commit comments

Comments
 (0)