Write a program in C++ with at least 3 functions. One function can do a linear s
ID: 3692178 • Letter: W
Question
Write a program in C++ with at least 3 functions.One function can do a linear search on an array. The other can do a binary search. You will need to modify the binary search code to keep track of how many numbers it checked before it found the number. Use function header/prototypes. In main, make an array of 30 sorted numbers. (Initialize the array with the numbers.) Do searches on the arrays on the same numbers. Print out how many elements it needs to check before it finds the number with each type of search. Do at least 6 linear searches and 6 binary searches.
Explanation / Answer
#include <stdio.h>
int linearSearch(int* a,int key){
int i=0;
for(i=0;i<10;i++){
if(*(a+i)==key){
return 1;
}
printf(" In linear search %d(array element) checked with %d(key) ",*(a+i),key);
}
return 0;
}
double binarySearch(int* a,int key){
int i=0;
int l=0,u=30;
int mid;
while(l<u){
mid=(l+u)/2;
if(key==*(a+mid)){
return 1;
}
else if(key<*(a+mid)){
u=mid-1;
}
else
l=mid+1;
printf(" In binary search %d(array element) checked with %d(key) ",*(a+i),key);
}
return 0;
}
void generateArray(int* a ){
int i=0;
for(i=0;i<30;i++){
*(a+i) = rand()%100;
}
}
void selectionSort(int* a){
int i=0,j=0,temp;
for(i=0;i<30;i++){
for(j=i+1;j<30;j++){
if(a[i]>a[j]){
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
int main(void) {
// your code goes here
int arr[30];
int i=0;
int key;
double avg,max=0;
printf("Generate An Array1 ");
generateArray(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" Enter Key : ");
scanf("%d",&key);
selectionSort(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" ------------linear Search-------------");
if(linearSearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" ------------binary Search-------------");
if(binarySearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" Generate An Array2 ");
generateArray(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" Enter Key : ");
scanf("%d",&key);
selectionSort(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" ------------linear Search-------------");
if(linearSearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" ------------binary Search-------------");
if(binarySearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" Generate An Array3 ");
generateArray(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" Enter Key : ");
scanf("%d",&key);
selectionSort(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" ------------linear Search-------------");
if(linearSearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" ------------binary Search-------------");
if(binarySearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" Generate An Array4 ");
generateArray(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" Enter Key : ");
scanf("%d",&key);
selectionSort(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" ------------linear Search-------------");
if(linearSearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" ------------binary Search-------------");
if(binarySearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" Generate An Array5 ");
generateArray(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" Enter Key : ");
scanf("%d",&key);
selectionSort(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" ------------linear Search-------------");
if(linearSearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" ------------binary Search-------------");
if(binarySearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" Generate An Array6 ");
generateArray(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" Enter Key : ");
scanf("%d",&key);
selectionSort(&arr);
for(i=0;i<30;i++){
printf("%d ",arr[i]);
}
printf(" ------------linear Search-------------");
if(linearSearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
printf(" ------------binary Search-------------");
if(binarySearch(&arr, key)){
printf(" Key Found");
}else{
printf(" Key Not Found");
}
return 0;
}
Output:
Generate An Array1
83 86 77 15 93 35 86 92 49 21 62 27 90 59 63 26 40 26 72 36 11 68 67 29 82 30 62 23 67 35
Enter Key :
11 15 21 23 26 26 27 29 30 35 35 36 40 49 59 62 62 63 67 67 68 72 77 82 83 86 86 90 92 93
------------linear Search-------------
In linear search 11(array element) checked with 26(key)
In linear search 15(array element) checked with 26(key)
In linear search 21(array element) checked with 26(key)
In linear search 23(array element) checked with 26(key)
Key Found
------------binary Search-------------
In binary search 11(array element) checked with 26(key)
In binary search 11(array element) checked with 26(key)
In binary search 11(array element) checked with 26(key)
Key Found
Generate An Array2
29 2 22 58 69 67 93 56 11 42 29 73 21 19 84 37 98 24 15 70 13 26 91 80 56 73 62 70 96 81
Enter Key :
2 11 13 15 19 21 22 24 26 29 29 37 42 56 56 58 62 67 69 70 70 73 73 80 81 84 91 93 96 98
------------linear Search-------------
In linear search 2(array element) checked with 83(key)
In linear search 11(array element) checked with 83(key)
In linear search 13(array element) checked with 83(key)
In linear search 15(array element) checked with 83(key)
In linear search 19(array element) checked with 83(key)
In linear search 21(array element) checked with 83(key)
In linear search 22(array element) checked with 83(key)
In linear search 24(array element) checked with 83(key)
In linear search 26(array element) checked with 83(key)
In linear search 29(array element) checked with 83(key)
Key Not Found
------------binary Search-------------
In binary search 2(array element) checked with 83(key)
In binary search 2(array element) checked with 83(key)
In binary search 2(array element) checked with 83(key)
In binary search 2(array element) checked with 83(key)
Key Not Found
Generate An Array3
5 25 84 27 36 5 46 29 13 57 24 95 82 45 14 67 34 64 43 50 87 8 76 78 88 84 3 51 54 99
Enter Key :
3 5 5 8 13 14 24 25 27 29 34 36 43 45 46 50 51 54 57 64 67 76 78 82 84 84 87 88 95 99
------------linear Search-------------
In linear search 3(array element) checked with 45(key)
In linear search 5(array element) checked with 45(key)
In linear search 5(array element) checked with 45(key)
In linear search 8(array element) checked with 45(key)
In linear search 13(array element) checked with 45(key)
In linear search 14(array element) checked with 45(key)
In linear search 24(array element) checked with 45(key)
In linear search 25(array element) checked with 45(key)
In linear search 27(array element) checked with 45(key)
In linear search 29(array element) checked with 45(key)
Key Not Found
------------binary Search-------------
In binary search 3(array element) checked with 45(key)
In binary search 3(array element) checked with 45(key)
In binary search 3(array element) checked with 45(key)
Key Found
Generate An Array4
32 60 76 68 39 12 26 86 94 39 95 70 34 78 67 1 97 2 17 92 52 56 1 80 86 41 65 89 44 19
Enter Key :
1 1 2 12 17 19 26 32 34 39 39 41 44 52 56 60 65 67 68 70 76 78 80 86 86 89 92 94 95 97
------------linear Search-------------
In linear search 1(array element) checked with 67(key)
In linear search 1(array element) checked with 67(key)
In linear search 2(array element) checked with 67(key)
In linear search 12(array element) checked with 67(key)
In linear search 17(array element) checked with 67(key)
In linear search 19(array element) checked with 67(key)
In linear search 26(array element) checked with 67(key)
In linear search 32(array element) checked with 67(key)
In linear search 34(array element) checked with 67(key)
In linear search 39(array element) checked with 67(key)
Key Not Found
------------binary Search-------------
In binary search 1(array element) checked with 67(key)
In binary search 1(array element) checked with 67(key)
In binary search 1(array element) checked with 67(key)
Key Found
Generate An Array5
40 29 31 17 97 71 81 75 9 27 67 56 97 53 86 65 6 83 19 24 28 71 32 29 3 19 70 68 8 15
Enter Key :
3 6 8 9 15 17 19 19 24 27 28 29 29 31 32 40 53 56 65 67 68 70 71 71 75 81 83 86 97 97
------------linear Search-------------
In linear search 3(array element) checked with 90(key)
In linear search 6(array element) checked with 90(key)
In linear search 8(array element) checked with 90(key)
In linear search 9(array element) checked with 90(key)
In linear search 15(array element) checked with 90(key)
In linear search 17(array element) checked with 90(key)
In linear search 19(array element) checked with 90(key)
In linear search 19(array element) checked with 90(key)
In linear search 24(array element) checked with 90(key)
In linear search 27(array element) checked with 90(key)
Key Not Found
------------binary Search-------------
In binary search 3(array element) checked with 90(key)
In binary search 3(array element) checked with 90(key)
In binary search 3(array element) checked with 90(key)
In binary search 3(array element) checked with 90(key)
Key Not Found
Generate An Array6
40 49 96 23 18 45 46 51 21 55 79 88 64 28 41 50 93 0 34 64 24 14 87 56 43 91 27 65 59 36
Enter Key :
0 14 18 21 23 24 27 28 34 36 40 41 43 45 46 49 50 51 55 56 59 64 64 65 79 87 88 91 93 96
------------linear Search-------------
In linear search 0(array element) checked with 85(key)
In linear search 14(array element) checked with 85(key)
In linear search 18(array element) checked with 85(key)
In linear search 21(array element) checked with 85(key)
In linear search 23(array element) checked with 85(key)
In linear search 24(array element) checked with 85(key)
In linear search 27(array element) checked with 85(key)
In linear search 28(array element) checked with 85(key)
In linear search 34(array element) checked with 85(key)
In linear search 36(array element) checked with 85(key)
Key Not Found
------------binary Search-------------
In binary search 0(array element) checked with 85(key)
In binary search 0(array element) checked with 85(key)
In binary search 0(array element) checked with 85(key)
In binary search 0(array element) checked with 85(key)
Key Not Found
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.