How efficient is this code?

algorithm
array
binary-search
computer
deletion
science

#1

Hello

I have a fairly small code here that accepts an array from the user, asks them for a element and deletes that element(if present in the array).

/* Deletion in a array */
#include <iostream>
#define EXIT_FAILURE -1
#define EXIT_SUCCESS 0
using namespace std;
/* Function searches an array */
int BinarySearch(int * ARR, int SIZE, int ELEMENT)
{
int BEG_i = 0, MID_i, LAST_i = SIZE - 1;
while(BEG_i <= LAST_i)
{
	MID_i = (BEG_i + LAST_i) / 2;
	if(ARR[MID_i] == ELEMENT)
		return MID_i;
	else if(ARR[MID_i] < ELEMENT)
		BEG_i = MID_i + 1;
	else
		LAST_i = MID_i - 1;
}
return -1;
}
/* Function deletes the required element */
int *Delete(int *ARR, int &SIZE, int index)
{
int temp_index;
ARR[index] = 0;
for(int I = index; I < SIZE - 1; I++)
{
	ARR* = ARR[I + 1];
	temp_index = I + 1;
}
SIZE--;
ARR[temp_index] = 0;
return ARR;
}
int main()
{
int *intArr= nullptr;
int arrSize, searchElement, index = 0;
cout << "

Enter the size of the array: ";
cin >> arrSize;
intArr = new int[arrSize + 10]; /* Allocating a little extra memory in case of emergencies :smiley: /
if(!intArr)
{
cerr << "
Oops! Something went wrong!" << endl;
system(“pause”);
exit(0);
}
cout << "
Enter the array:-
" << endl;
for(int I= 0; I < arrSize; I++)
{
cout << "Enter element : ";
cin >> intArr
;
}

cout << "

Enter element you want to delete: ";
cin >> searchElement;
index = BinarySearch(intArr, arrSize, searchElement);
if(index != -1)
{
Delete(intArr, arrSize, index);
}

else
{
	cout << "

Element “” << searchElement << “” not found in array!" << endl;
cout << endl;
system(“pause”);
delete[] intArr;
return EXIT_SUCCESS;
}
cout << "
Array after deleting ‘" << searchElement << "’ :-
" << endl;
for(int I = 0; I < arrSize; I++)
{
cout << intArr* << " ";
}
cout << endl;
system(“pause”);
delete[] intArr;
return EXIT_SUCCESS;
}

Can you tell me how efficient it is to use it in various situations? Or is it not practically usable in most cases? And what changes do you suggest I make in it(if any are required)?

Thanks nd Cheers!


#2

Could you tell us what you are using this code for , what is the range of numbers and how many operations are you planning to perform?
Depending on the purpose you could considering using a linked list or using extra memory.


#3

1 thing i would like to point out is that…to use binary search…u need to sort the array first…!!


#4

@kunal361 You know CBSE classes XII had arrays chapter in its course and array operations are also a part of it. So, after a few major and minor changes, I am gonna use my code for deleting data from text or dat files for games, etc.


#5

@kcahdog As far as my estimates, the range won’t be greater than 10000 or 50000.