swap(arr, i, j)
Begin
Set temp = arr[i]
Set arr[i] = arr[j]
Set arr[j] = temp
End
partition(arr, low, mid)
Begin
Set pivot = arr[low]
Set i = low
Set j = high
while (i < j), do
while (i < high && arr[i] <= pivot), do
Increment i by 1
End While
while (j > low && arr[j] > pivot), do
Decrement j by 1
End While
if (i < j), then
Call swap(arr, i, j)
End If
End While
Call swap(arr, low, j)
return j
End
quicksort(arr, low, high)
Begin
if (low >= high) return
Set pivot = partition( arr, low, high)
Call quicksort(arr, low, pivot - 1)
Call quicksort(arr, pivot + 1, high)
End
binarySearch(arr, size, elem)
Begin
Declare start = 0
Declare stop = size - 1
Declare index = -1
while (start <= stop), do
Set mid = start + (stop - start) / 2
if (arr[mid] < elem), then
Set start = mid + 1
else if (arr[mid] > elem), then
Set stop = mid - 1
else
Set index = mid
break
End If
End While
return index
End
main()
Begin
Read array size, "size"
Declare arr[size]
for (i = 0; i < size; i++), do
Read element store in arr[i]
End For
Read element to search, "elem"
Call quicksort(arr, 0, size - 1)
Display sorted array "arr"
Set index = binarySearch(arr, size, elem)
if (index == -1), then
Display "Element not found"
else
Display "Element found at position " + (index + 1)
End If
End
Program
#include<stdio.h>voidswap(int*arr,int i,int j){int temp = arr[i]; arr[i]= arr[j]; arr[j]= temp;}intpartition(int*arr,int low,int high){int pivot = arr[low];int i = low;int j = high;while(i < j){while(i < high && arr[i]<= pivot) i++;while(j > low && arr[j]> pivot) j--;if(i < j)swap(arr, i, j);}swap(arr, low, j);return j;}voidquickSort(int*arr,int low,int high){if(low >= high)return;int pivot =partition(arr, low, high);quickSort(arr, low, pivot -1);quickSort(arr, pivot +1, high);}intbinarySearch(int*arr,int size,int elem){int low =0;int high = size -1;while(low <= high){int mid = low +(high - low)/2;if(arr[mid]> elem) high = mid -1;elseif(arr[mid]< elem) low = mid +1;elsereturn mid;}return-1;}intmain(){int size, elem;printf("Enter array size: ");scanf("%d",&size);int arr[size];printf("Enter array elements: ");for(int i =0; i < size; i++)scanf("%d",&arr[i]);printf("Enter element to search: ");scanf("%d",&elem);quickSort(arr,0, size -1);printf("The sorted array: ");for(int i =0; i < size; i++)printf("%d ", arr[i]);int index =binarySearch(arr, size, elem);if(index ==-1)printf("\nElement not found\n");elseprintf("\nElement fount at position %d\n",(index +1));}