In: Computer Science
I would like to integrate a bubble sort into this binary search
in c ++ Thank you!
#include <iostream>
using namespace std;
// Binary search algorith
// f is the first , l is the last , t is the target
int binarySearch(int stgrade[], int f, int l, int t)
{
while (f <= l)
{
int m = f
+ (l - l) / 2;
// Check if x is present at mid
if
(stgrade[m] == t)
return m;
// If x greater, ignore left half
if
(stgrade[m] < t)
f = m + 1;
// If x is smaller, ignore right half
else
l = m - 1;
}
// if we reach here, then
element was not present
return -1;
}
int main(void)
{
int target;
int stgrade[] = { 100, 73, 94, 100, 70, 86, 55,
90, 74 };
// size of the array
int s = sizeof(stgrade) /
sizeof(stgrade[0]);
cout << "This is your list" <<
endl;
for (int i = 0; i < s; i++)
cout << stgrade[i]
<< " ";
cout << endl;
cout << "Input the target to find , in or
out side of your list" << endl;
cin >> target;
// 0 is the index of 1st element
// s is the size and s-1 is in dext of last
element
// target is what you want to find
int result = binarySearch(stgrade, 0, s - 1 ,
target);
if (result == -1)
cout << "Your target
NOT FOUND in the list" << endl;
else
cout << "Your target is
in the list " << result + 1 << endl;
system("pause");
return 0;
}
#include <iostream>
using namespace std;
// Binary search algorith
// f is the first , l is the last , t is the target
int binarySearch(int stgrade[], int f, int l, int t) {
while (f <= l) {
int m = f + (l - l) / 2;
// Check if x is present at mid
if (stgrade[m] == t)
return m;
// If x greater, ignore left half
if (stgrade[m] < t)
f = m + 1;
// If x is smaller, ignore right half
else
l = m - 1;
}
// if we reach here, then element was not present
return -1;
}
// Bubble sort algorithm
// size is the size of the array
void bubbleSort(int stgrade[], int size) {
int temp;
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size - 1; ++j) {
if (stgrade[j] > stgrade[j+1]) {
temp = stgrade[j];
stgrade[j] = stgrade[j + 1];
stgrade[j + 1] = temp;
}
}
}
}
int main(void) {
int target;
int stgrade[] = {100, 73, 94, 100, 70, 86, 55, 90, 74};
// size of the array
int s = sizeof(stgrade) / sizeof(stgrade[0]);
bubbleSort(stgrade, s); // sort the array
cout << "This is your list" << endl;
for (int i = 0; i < s; i++)
cout << stgrade[i] << " ";
cout << endl;
cout << "Input the target to find , in or out side of your list" << endl;
cin >> target;
// 0 is the index of 1st element
// s is the size and s-1 is in next of last element
// target is what you want to find
int result = binarySearch(stgrade, 0, s - 1, target);
if (result == -1)
cout << "Your target NOT FOUND in the list" << endl;
else
cout << "Your target is in the list " << result + 1 << endl;
system("pause");
return 0;
}
