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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Чтение из файла http://www.cyberforum.ru/cpp-beginners/thread50958.html
Доброго всем дня! Опишу свою проблему - есть файл с библиотекой данных (размером аж 142 082 049 байт), в одном байте которой хранится 2 значения от 0 до 9 в определенном порядке (ну это не суть важно). Надо эту библиотеку считать из файла в память, чтобы каждое значение было помещено в массив unsigned short int(потому как значения не превышают 9-ти). Делаю я это следующим образом: cout<<"1....
C++ Работа с файлами Скажите поожалуйста как сделать что бы программа могла читать и записывать в любой фаил информацию т.е Могла читать из фаила и записывать http://www.cyberforum.ru/cpp-beginners/thread50945.html
C++ Найти максимум среди сумм элементов диагоналей, параллельных побочной диагонали
Никак мозг не хочет повернуться, что бы понять как делается этот цикл for. У нас есть матрица (к примеру 5*5), надо найти максимум среди сумм элементов диагоналей, параллельных побочной диагонали. Буду очень признателен!
C++ Как работает рекурсия?
Ребята! Вот дошёл до темы рекурсия, и вроде тему из школы роходили, но смотрю на программу, и что-то не могу понять вот эту строку: answer = factr(n-1)*n; из кода: #include <iostream> using namespace std; int factr(int n);
C++ Как посчитать количество повторений каждой из цифр в числе N*N? http://www.cyberforum.ru/cpp-beginners/thread50914.html
я очень плохо ориентируюсь на С++.Такой вопрос:можно числа переводить в строки?И если нет,то как осуществить решение задачи?Помогите, пожалуйста
C++ FToS >float to string Нужно перевести число из double в std::string. что-то типа этого string FToS(double value, int precision); sprintf,printf и и подобные штуки не пойдут, т.к критично по времени. ps: разделитель точка. подробнее

Показать сообщение отдельно
Syltan
181 / 7 / 0
Регистрация: 27.08.2009
Сообщений: 868
17.09.2009, 21:03  [ТС]     Быстрая сортировка
Вот решение задачи выше,которую я попросил помочь. Если кто может,дополните коментарием вот этот,код,желательно как можно больше:
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
#include <iostream>
 
template<class T> //Что это,что оно даёт?
void quickSortR(T* a, long N) {
// На входе - массив a[], a[N] - его последний элемент.
 
  long i = 0, j = N;            //Что это?
  T temp, p;                    //и это?
 
  p = a[ N>>1 ];                // Это вообще не понятно что?
 
  // процедура разделения
  do {
    while ( a[i] < p ) i++;
    while ( a[j] > p ) j--;
 
    if (i <= j) {
      temp = a[i]; a[i] = a[j]; a[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
 
  // рекурсивные вызовы, если есть, что сортировать 
  if ( j > 0 ) quickSortR(a, j);
  if ( N > i ) quickSortR(a+i, N-i); //Вот это тоже не ясно что делается
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[] = "бвгда";
    quickSortR(str, strlen(str));
    std::cout << str << std::endl;
    int a[] = { 2, 5, 1, 20, 8, 0, 9 };
    quickSortR(a, 6);
 
    for(int i = 0; i < 7; i++)
        std::cout << a[i] << " ";
 
    std::cout << std::endl;
 
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru