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

Быстрая сортировка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос по обертке для строк http://www.cyberforum.ru/cpp-beginners/thread371305.html
Есть класс: class String { protected: char* content; } Как сделать так, чтобы при передаче объекта этого класса например в функцию printf печаталось содержимое content? Может надо переопределить какой-то оператор? Возможно ли вообще такое?
C++ Создание своего архива и работа с ним Здравствуйте форумчане! Вопрос таков: можно ли создать свой архив, наподобе какого-нибудь *.pak, чтобы работать с ним могла только моя программа? Просто нужно, чтобы ресурсы программы (картинки, ini и т.д.) никто не смог просматривать и свободно редактировать. http://www.cyberforum.ru/cpp-beginners/thread371303.html
C++ Ругается на If
#include<iostream> using std::cin; using std::cout; using std::endl; int main() { cout<<"Введите число:\n"; int age; cin>>age; If (age == 7)
C++ Блок-схемы!!!
Блок-схема к задаче: дана последовательность n-действительных чисел( задан массив из n чисел).Заменить все члены последовательности больше данного z этим числом.Подсчитать количество замен.Дубли тем не плодите!
C++ Проблема с композицией http://www.cyberforum.ru/cpp-beginners/thread371253.html
мне надо создать карту и используя композицию-колоду карт.при этом конструкторы должны инициализировать колоду упорядоченно и в разброс.я попыталась инициализировать в разброс,но не понимаю в чем ошибка.помогите пожалуйста! { class karta{ public: int mast; int zvan; }; class koloda{ int i,karti,k,a;
C++ Задача с++ Дано такое условие: Определить, поместится ли равнобедренный треугольник с основанием С и высотой h в прямоугольник со сторонами a и b так, чтобы высота треугольника была параллельна одной из сторон прямоугольника. Заранее спасибо. подробнее

Показать сообщение отдельно
xexew
0 / 0 / 0
Регистрация: 22.02.2011
Сообщений: 76
23.10.2011, 20:40     Быстрая сортировка
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
void quickSortR(int *first,int *last) {
// На входе - массив a[], a[N] - его последний элемент.
 
  int *i = first, *j = last;            // поставить указатели на исходные места
  int m;
 
  m=(first+last)/2;                // центральный элемент
 
  // процедура разделения
  do {
    while ( *(first+i) < m ) i++;
    while ( *(last+j) > m ) j--;
 
    if (i <= j) {
     int temp = *(first+i); *(first+i) = *(last+j); *(last+j) = temp;
      i++; j--;
    }
  } while ( i<=j );
 
  // рекурсивные вызовы, если есть, что сортировать 
  if ( j > first ) quickSortR(first, j);
  if ( last > i ) quickSortR(first+i, last-i);
 
 
int _tmain(int argc, _TCHAR* argv[])
{   int a[20];
    for (int i=0; i<20; i++)
        a[i]=i;
    random_shuffle(a,a+20);
    for (int i=0; i<20; i++)
        cout << a[i] <<' ';
    cout << endl;
    quickSortR(a,19);
 
    for (int i=0; i<20; i++)
        cout << a[i] <<' ';
    cout << endl;
    return 0;
}
Найдя в FAQ'е сортировку Хоара и введя некоторые изменения, возник вопрос:
как сложить два указателя? например что бы получить центральный элемент
буду очень признателен, если кто-нибудь объяснит
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru