Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "cstdio"
- template< typename T >
- void interchange(T &x, T &y) {
- x = x + y;
- y = x - y;
- x = x - y;
- }
- void sort_asc(int arr[], int);
- int bi_search(int arr[], int, int);
- int main() {
- int sizeu; printf("Give Array Size: "); scanf("%d", &sizeu);
- int arr[sizeu];
- for (int i = 0; i < sizeu ; i++) {
- printf("\nElement at index %d: ", i);
- scanf("%d", &arr[i]);
- }
- printf("\nGiven Array: \n");
- for (int i = 0; i < sizeu ; i++) {
- printf("\nElement at index %d: %d", i, arr[i]);
- }
- printf("\n\nAscending array elements....\n");
- sort_asc(arr, sizeu);
- for (int i = 0; i < sizeu ; i++) {
- printf("\nElement at index %d: %d", i, arr[i]);
- }
- printf("\n\nWhich element do you wish to search? : "); int item; scanf("%d", &item);
- int position = bi_search(arr, sizeu, item);
- if ( position != -1 )
- printf("\nElement has found at index no %d.", position);
- else
- printf("\nElement could not be found.");
- printf("\n");
- return 0;
- }
- void sort_asc(int arr[], int n) {
- for (int i = 0; i < n-1 ; i++) {
- bool flag = false;
- for (int j = 0; j < n-1 ; j++) {
- if (arr[j] > arr[j+1]) {
- interchange(arr[j], arr[j+1]);
- flag = true;
- }
- }
- if (flag == false)
- break;
- }
- }
- int bi_search(int arr[], int n, int desired) {
- int first = 0, last = n-1, position = -1;
- bool found = false;
- while (found != true && first <= last) {
- int mid = (first+last)/2;
- if (arr[mid] == desired) {
- found = true;
- position = mid;
- }
- else if (arr[mid] > desired)
- last = mid - 1;
- else
- first = mid + 1;
- }
- return position;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement