Форум программистов, компьютерный форум 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, указать, какое из произведений по модулю больше подробнее

Показать сообщение отдельно
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
10.10.2011, 14:29     Бинарный поиск
попробуй так (добавила пару проверок и чуть-чуть поменяла цикл поиска)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <ctime>
using namespace std;
 
int main(){
        srand((unsigned)time(0));
        
        int n;
        cout << "\n Enter array size : ";          cin >> n;
        if(n<=0)
        {
            cout<<" Wrong parameter!\n";
            _getch();
            return 0;
        }
 
        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;
        if(arr[0]>key|| arr[n-1]<key)
        {
            cout<<" Not found!\n";
            _getch();
            return 0;
        }
        
        int first = 0;  
        int last = n;
        int mid = 0 ;
 
        while(first < last){                                    
                                                                                                                                
         mid = ((first+last) /2) ;                                                                      
                                                                                                                                
                if (key <=arr[mid])                                                                             
                         last = mid;                                                                         
                 else
                         first = mid+1;
               
        }
        if(arr[last]==key) cout << "\n Item is on position number ( adjusted by one ) : "<< last+1;
        else   cout<<"\n Not found!\n"; 
        _getch();
}
 
Текущее время: 00:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru