Week 9 programs on searching and sorting
#include <stdio.h>
#define MAX SIZE 25
int a[MAX_SIZE], 1 b = 0, ub;
1 = -
void swap(int, int);
void initialize;
void display;
void linearSearch;
void binarySearchO;
void bubbleSort;
void selectionSort0;
int main) {
int C;
printf "InProgram implementing searching and sorting techniques\n");
Start:
printf("\nEnter 1for linear search\nEnter 2 for bubble sort\nEnter 3 for selection sort\nEnter 4 for binary searchnEnter 0 to exitin nEnter your choice: ");
scanf("%d", & c);
switch (c)
case 1:
initialize;
display0;
linearSearch;
break;
case 2:
initialize();
display();
bubbleSort();
printf("\nSorting...\n");
display();
break;
case 3:
initialize();
display();
selectionSort();
printf("\nSorting...\n");
display();
break;
case 4:
initialize();
display();
binarySearch();
break;
case 0:
printf("\nThank you\n");
goto end;
default:
printf("\nInvalid choice\n");
break;
}
goto start;
end:
return 0;
}
void swap(int x, int y) {
int t = a[x];
a[x] = a[y];
a[y] = t;
}
void initialize() {
start: printf("\n\nEnter number of elements: ");
int x;
scanf("%d", & x);
if (x > MAX_SIZE) {
printf("Invalid. Elements cannot be more than %d.\n", MAX_SIZE);
goto start;
}
int i;
for (i = 0; i < x; i++) {
printf("Enter element A[%d] = ", i);
scanf("%d", & a[i]);
}
lb = 0;
ub = x - 1;
printf("\nRead successful.");
}
void display() {
if (ub < lb) {
printf("Empty array.");
return;
}
printf("\n\nArray is : [");
int i;
for (i = lb; i <= ub; i++)
printf("%d, ", *(a + i));
printf("\b\b] \n");
}
void linearSearch() {
int ele;
printf("\nEnter element to be searched: ");
scanf("%d", & ele);
int i;
for (i = lb; i <= ub; i++) {
if (a[i] == ele) {
printf("\nElement found at index %d\n", i);
break;
}
}
if (i > ub)
printf("\nElement not found\n");
}
void bubbleSort() {
int i, j;
for (i = lb; i < ub; i++) {
for (j = 0; j < ub - i; j++) {
if (a[j] > a[j + 1])
swap(j, j + 1);
}
}
}
void selectionSort() {
int i, j, x;
for (i = lb; i < ub; i++) {
x = i;
for (j = i + 1; j <= ub; j++) {
if (a[j] < a[x])
x = j;
}
swap(i, x);
}
}
void binarySearch() {
bubbleSort();
int ele;
printf("\nEnter element to be searched: ");
scanf("%d", & ele);
int l = lb, h = ub, m;
while (l <= h) {
m = (l + h) / 2;
if (a[m] == ele) {
printf("\nElement found\n");
return;
} else if (a[m] > ele)
h = m - 1;
else
l = m + 1;
}
printf("\nElement not found\n");
}
Program implementing searching and sorting techniques
Enter 1 for linear search
Enter 2 for bubble sort
Enter 3 for selection sort
Enter 4 for binary search
Enter 0 to exit
Enter your choice: 1
Enter number of elements: 4
Enter element A[0] = 11
Enter element A[1] = 22
Enter element A[2] = 33
Enter element A[3] = 44
Read successful.
Array is : [11, 22, 33, 44]
Enter element to be searched: 33
Element found at index 2
Enter 1 for linear search
Enter 2 for bubble sort
Enter 3 for selection sort
Enter 4 for binary search
Enter 0 to exit
Enter your choice: 2
Enter number of elements: 5
Enter element A[0] = 55
Enter element A[1] = 44
Enter element A[2] = 33
Enter element A[3] = 77
Enter element A[4] = 11
Read successful.
Array is : [55, 44, 33, 77, 11]
Sorting...
Array is : [11, 33, 44, 55, 77]