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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ количество сравнений и перестановок в быстрой сортировке http://www.cyberforum.ru/cpp-beginners/thread753634.html
Здравствуйте, нужна помощь. Нужно посчитать количество сравнений и перестановок в быстрой сортировке. Помогите,please!
C++ Переход на Visual Studio 2012 Вот обучался по книге Р.Лафоре ООП. Вчера решил сменить компилятор, перешел с Visual Studio 6.0 на Visual Studio Ultimate 2012 Кто может объяснить что нужно дописывать в программу чтобы она работала ? Код переписан из учебника. (Программа демонстрирующая работу стека) #include "stdafx.h" // Строка добавлена мною под VS 2012, остальной код в оригинале http://www.cyberforum.ru/cpp-beginners/thread753632.html
Сортировка побочной диагонали матрицы С++ C++
Помогите у меня были идеи но код больше похож на приход нарика) for (int k=0; k<n;k++) for (int j=k-1;j<n;j++) if (Matr < Matr) { buf = Matr; Matr = Matr; Matr = buf; }
Как создать сетевое приложение C++
Вообщем как связать две элементарных программы с разных компьютеров подключённых к интернету?
C++ Калькулятор http://www.cyberforum.ru/cpp-beginners/thread753611.html
Калькулятор,нужно было добавить,чтобы он понимал FOR,т.е. если к примеру я ввожу FOR(5)(1+1) он мне должен вывести 5 раз значение выражения в скобках(т.е. 2). Синтаксический анализатор,настроен вроде правильно,он понимает эту запись.Суть проблемы в том что при пошаговой отладке на ВЫчислителе он дает вот такую ошибку: Необработанное исключение в "0x00182211" в "Ksu.exe": 0xC0000005: Нарушение...
C++ Колода карт Здравствуйте. Имеется код программы, которая тасует колоду карт и вытягивает необходимое количество карт из колоды. Пример взят из книги Оверленда "С++ без страха". Вопросы в комментариях. #include <iostream> #include <cstdlib> #include <ctime> #include <cmath> using namespace std; void draw_a_card(); подробнее

Показать сообщение отдельно
strange_man
 Аватар для strange_man
9 / 9 / 0
Регистрация: 17.05.2012
Сообщений: 117
05.01.2013, 22:22     Быстрая сортировка
нормальный код? а то третий день парюсь, вроде сейчас получилось
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
void quicksort (int *a, int start, int end)
{
    int point = partition (a, start, end); //вызов функции, которая определит окончательную позицию одного элемента и делит массив на подмассивы
 
    //пока в подмасиве не останется один элемент, делаем рекурсивный вызов
    if (point - start >= 1) 
        quicksort (a, start, point-1);
    if (end - point >= 1)
        quicksort (a, point+1, end);
}
 
int partition (int *a, int start, int end)
{
    int pos = start; //определяем позицию элемента, находящегося первым в неотсортированном подмассиве
    while (1)
    {
        int i = end; //счетчик идет с конца подмассива
 
        while ((a[i] >= a[pos]) && (i > pos))
            i--;
 
        //меняем местами элементы в подмассиве, если нужный нам элемент пока не попал в свою позицию
        if (i != pos)
            swap (a[pos], a[i]); //меняем местами элементы массива
        else
        {
            return pos; //возвращаем номер позиции для последующих рекурсивных вызовов
            break;
        }
 
        pos = i;
        i = start + 1;
 
        //по аналогии с предыдущим действием, но теперь в части подмассива слева от элемента
        while ((a[i] <= a[pos]) && (i < pos))
            i++;
 
        if (i != pos)
            swap (a[pos], a[i]);
        else
        {
            return pos;
            break;
        }
 
        pos = i; 
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru