Week 9 programs on searching and sorting

Source Code

#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");
}

Output

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]