Форум программистов, компьютерный форум CyberForum.ru

Бинарный поиск - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа со строками http://www.cyberforum.ru/cpp-beginners/thread364008.html
Помогите пожалуйста нужна функция копирования из одной строки в другую начиная с к символов.Вот прототип void copy(char *str1,int k,char *str2)
C++ Составить функцию проверки линейной независимости векторов Решите на c++,пожалуйста Задание:Составить функцию проверки линейной независимости векторов Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread364002.html
Замена функций c cout на printf() как это работает? C++
Здрасвуйте помогите пожалуйсто вообще не догнал как работает вот эта функиция scanf() c cout на printf() как заменить понял а вот с cin на scanf() не как что куда мот кто поможет как это сдедать в данно случае: cin >> ftemp; вот задача #include <iostream> using namespace std; int main()
C++ Построить линейный список из нескольких динамических переменных
Построить линейный список из нескольких динамических переменных, содержащих вводимые символы — строчные буквы английского алфавита. После каждого элемента списка вставить еще по одному элементу, значением которого будет такая же буква английского алфавита, как и у предыдущего элемента, но только прописная. Вывести полученный список.(В программе нельзя использовать массивы (даже динамические) и...
C++ Дан массив из четырёхзначных натуральных чисел http://www.cyberforum.ru/cpp-beginners/thread363973.html
Дан массив из четырёхзначных натуральных чисел. Вывести на экран только те, у которых сумма первых двух цифер равна сумме двух последних.
C++ В последовательности действительных чисел a1,a2,...,an есть только положительные и отрицательные элементы В последовательности действительных чисел a1,a2,...,an есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P1 и произведение положительных элементов P2. Сравнить модуль p2 с модулем P1, указать, какое из произведений по модулю больше подробнее

Показать сообщение отдельно
Deleter
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 35

Бинарный поиск - C++

10.10.2011, 13:39. Просмотров 481. Ответов 3
Метки (Все метки)

Вот вроде бы всё работает только как-то не очень правильно не находит 2 позицию в массиве и пред последнею может ещё что-то не находит , я не вижу что не так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <ctime>
using namespace std;
 
void main(){
    srand((unsigned)time(0));
    
    int n;
    cout << "\n Enter array size : ";          cin >> n;
 
    int *arr = new int[n];
    for(int i = 0 ; i < n; i++ ){
        arr[i]=rand()%901+100;
    }
                                                     
    for(int i = 0 ; i < n; i++ ){                      // 
        for(int j = n-1; j >= i; j--){                 //
            if(arr[j] < arr[j-1] ){                    //
                short int tmp = arr [j];               //
                arr[j]= arr[j-1];                      //
                arr[j-1]= tmp ;                        //
            }
        }
    }
    cout << "\n Sorted list : "<<endl;              // Выводим отсортированый массив
    for(int i = 0 ; i < n; i++){                       
            cout << "  "<< arr[i] ;                
    }
    
    
    int key;
    cout << "\n Enter number that you want to find : "; cin >> key;
    int first = 0;  
    int last = n;
    int mid = 0 ;
    while(first < last){                    
                                                                
     mid = ((first+last) /2) ;                                  
                                                                
        if (key < arr[mid])                                     
             last = mid -1;                                     
         else
             first = mid +1;
        if(key == arr[mid]){cout << "\n Item is on position number ( adjusted by one ) : "<< mid+1;  break;}
    }
        if(first > last)
            cout<<"\n Not found!"; 
    _getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru