Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Показать сообщение отдельно
Laertik
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 23
Завершенные тесты: 1
0

Быстрая сортирвока методом Хоара с использованием индексного массива

19.05.2013, 17:15. Просмотров 343. Ответов 0
Метки (Все метки)

Есть структура - и эту структуру надо отсортировать по b QuickSortom'ом.

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
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <conio.h>
#include <string.h>
#include <iostream> 
struct BaseRec
{
    char a[30];
    unsigned short int b;
    char c[10];
    char d[22];
    
};
void BuildQuickByInvestions(BaseRec *base, int *a, int start, int end)
{
    BaseRec x = base[a[start]];
    int i = start,j = end,temp;
    while(i<=j)
    {
        while(base[a[i]].b < x.b) i++;
        while(base[a[j]].b > x.b) j--;
        if (i<=j) 
        {
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;
        i++;
        j--;
        }
    
    if ( start<j ) BuildQuickByInvestions ( base, a, start, j );
    if ( i<end ) BuildQuickByInvestions ( base, a, i, end);
}
}
 main()
    FILE *base = fopen("testBase3.dat","rb");
    int i = 0, *indexArr;
    indexArr = new int[4000];
    for(i = 0;i < 4000; i++)
    indexArr[i] = i;
    if(base == NULL)
    {
        std::cout << "ERROR_1";
        //return;
    }
    BaseRec *temp = new BaseRec[4000];
    i=0;
    fread(temp,sizeof(BaseRec),4000,base);
    BuildHeapByInvestions(temp,indexArr,2000-1,4000);
 
    getch();
    }
Файл с записями существет.В нем есть 4000 записей.

При запуске ничего не выдает - запускается консоль и сразу ошибка.
Укажите,пожалуйста,где ошибка.

Добавлено через 1 час 42 минуты
ап!

Добавлено через 1 час 38 минут
ап!!

Вернуться к обсуждению:
Быстрая сортирвока методом Хоара с использованием индексного массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2013, 17:15
Готовые ответы и решения:

Быстрая сортировка (сортировка методом Хоара)
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные...

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива
Мне нужно отсортировать фрагмент массива, расположенный между первым и...

Быстрая сортировка Хоара
Быстрая сортировка Хоара (QSort) разбивает массив в ходе сортировки до ...

Быстрая сортировка Хоара без рекурсивных функций
Здравствуйте мне нужно написать быстрою сортировку Хоара но без рекурсивных...

Быстрая сортировка (сортировка Хоара) для связных списков
есть у кого готовый алгоритм? или подскажите как реализовать

0
Другие темы раздела
C++ Интерполяция линейными сплайнами http://www.cyberforum.ru/cpp-beginners/thread870176.html
Немогу никак разобратя с этим методом. Кто может помогите срочно (сайты или код) очень нужно!!!
C++ Работает ли Кириллица с классами? Почему-то всё корректно отображается на русском, кроме параметра, который выходит из класса. main.h: class Person { public: Person(int ID, char* data, bool Pol, double age); Person():... http://www.cyberforum.ru/cpp-beginners/thread870154.html
Вычисление функции методом разложения в ряд C++
#include <iostream> #include <cmath> #include <iomanip> #include <clocale> using namespace std; int main() { setlocale(LC_ALL,"rus");
Разработать класс и производный класс C++
Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты.
C++ Вычисление функций с использованием их разложения в степенной ряд http://www.cyberforum.ru/cpp-beginners/thread870135.html
Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в двух случаях: а) для заданного n; б) для заданной точности e (e=0.0001)....
C++ Графы. База Дуг. Полный Перебор Необходимо реализовать поиск минимальной базы дуг полным перебором. Не могли бы натолкнуть меня, как сделать тот самый полный перебор, а то никак не соображу. Как по очереди добавлять дуги? Если не... подробнее
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru