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

Сортировка и двоичный поиск в массиве. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не получается запрограммировать запуск win xp с точки восстановления http://www.cyberforum.ru/cpp-beginners/thread454937.html
Доброго времени суток! Необходимо составить код, для перезагрузки win xp с точки восстановления. Помогите пожалуйста!
C++ Список студентов: возможность вводить оценки, изменять, удалять нужно сохдать программу списка студентов и их оценок (баллы от 0-100, чтобы пройти экзамен нужно набрать минимум 65 баллов, не набравшие 65 считаются провалившими экзамен.). кол-во студентов 9 (двое из них тески), у каждого свой id номер, изучают три предмета (физика, англ.яз, матем.). программа должна: 1) можно вводить оценки, изменять оценки, удалять оценки. 2) можно просмотреть оценки по... http://www.cyberforum.ru/cpp-beginners/thread454932.html
Реализовать метод minutes () - приведение времени в минуты C++
помогите найти ошибку вот само задание: поле first- целое положительное число, часы; поле second- целое положительное число, минуты. Реализовать метод minutes () - приведение времени в минуты. #include<iostream.h> #include<conio.h> struct time { int first,second; void init(int first,int second);
Вывести на экран все знаки пунктуации. C++
Пользователь вводит с клавиатуры строку – предложение с пробелами и знаками пунктуации длиной до 100 символов. Вывести на экран все знаки пунктуации.
C++ Монеты номиналом 1, 2, 5, 10, 25, 50 http://www.cyberforum.ru/cpp-beginners/thread454908.html
У Вас есть монеты номиналом 1, 2, 5, 10, 25 та 50 копеек в бесконечном количестве. Сколькими способами можно выдать один рубль? У меня есть программа на paskal а мне надо просто переписать на чистый Си uses crt; var i1,i2,i3,i4,i5,i6:integer; k:integer; begin k:=0; for i1:=0 to 100 do for i2:=0 to 50 do for i3:=0 to 20 do
C++ Создать динамический массив, любого простого типа (например: int, long, float, double) 1. Создать проект, который содержит консольную программу Win32. 2. Создать динамический массив, любого простого типа (например: int, long, float, double ), предварительно узнав его размер у пользователя. Создать функцию, которая будет заполнять массив случайными значениями, функцию вычисления суммы элементов массива, и функцию которая будет выводить на печать состав массива и результаты на... подробнее

Показать сообщение отдельно
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
29.02.2012, 11:44     Сортировка и двоичный поиск в массиве.
Зачем столько всяких функций? Если можно использовать вектора, тогда:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
#include <vector>
#include <algorithm>
 
void swap(long long &a,long long &b){
a+=b;
b=a-b;
a-=b;
}
...
main(){
int n,i;
cin>>n;
vector <long long> a(n);
for(i=0;i<n;i++)cin>>a[i];
sort( a.begin(),a.end() );
for(i=0;i<n/2;i++)
swap(a[i],a[n-i-1]);
А что с бинарным поиском, я не понял.
В общем случае:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int number;
cin>>number;
int left,right,median;
left=0;
right=n-1;
 
while(left<right){
 
    median=(left+right)/2;
    if(a[median]<number)
       left=median+1;
    else 
       right=median;
}
 
cout<<median; //индекс
 
Текущее время: 01:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru