Загрузить файлы в «/»
This commit is contained in:
parent
7ade2b58bd
commit
3cdaf150e1
72
BinarySearch.cpp
Normal file
72
BinarySearch.cpp
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#include<iostream>
|
||||||
|
int main(){
|
||||||
|
int size=0;
|
||||||
|
int elements=0;
|
||||||
|
int target=0;
|
||||||
|
int middle=0;
|
||||||
|
bool found = false;
|
||||||
|
|
||||||
|
|
||||||
|
while(true){
|
||||||
|
std::cout<<"Введите размер вашего массива: ";
|
||||||
|
if(!(std::cin>>size)){
|
||||||
|
std::cin.clear();
|
||||||
|
std::cin.ignore(1000,'\n');
|
||||||
|
std::cerr<<"Ошибка типа данных. Введите число: "<<std::endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(size<=0){
|
||||||
|
std::cerr<<"Ошибка. Массив должен быть больше нуля. Повторите попытку: ";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
std::cout<<"Размер вашего массива: "<<size<<std::endl;
|
||||||
|
std::cout<<"Введите элементы массива: ";
|
||||||
|
|
||||||
|
int* arr = new int[size];
|
||||||
|
int left=0;
|
||||||
|
int right = size -1;
|
||||||
|
|
||||||
|
for(int i=0;i<size;i++){
|
||||||
|
std::cin>>elements;
|
||||||
|
arr[i] = elements;
|
||||||
|
std::cout<<i<<")"<<elements<<std::endl;
|
||||||
|
}
|
||||||
|
std::cout<<"Ваши элементы: "<<std::endl;
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
std::cout << arr[i]<<" ";
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout<<"Введите элемент для поиска: ";
|
||||||
|
std::cin>>target;
|
||||||
|
|
||||||
|
while(left<=right){
|
||||||
|
middle=left+(right-left)/2;
|
||||||
|
|
||||||
|
if(arr[middle]==target){
|
||||||
|
found = true;
|
||||||
|
std::cout<<"Элемент найден: "<<target<<std::endl;
|
||||||
|
std::cout<<"Индекс элемента: "<<middle<<std::endl;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if(arr[middle]<target){
|
||||||
|
left=middle + 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
right=middle-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delete[] arr;
|
||||||
|
|
||||||
|
if(!found){
|
||||||
|
std::cerr<<"Вашего элемента нет в массиве";
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user