Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Laertik
0 / 0 / 0
Регистрация: 19.05.2013
Сообщений: 20
#1

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

19.05.2013, 17:15. Просмотров 323. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Быстрая сортирвока методом Хоара с использованием индексного массива (C++):

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

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

Быстрая сортировка Хоара - C++
Быстрая сортировка Хоара (QSort) разбивает массив в ходе сортировки до тех пор, пока размер частичного подмассива не станет равен...

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

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

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара) - C++
Вопрос, скорее академический, по мотивам реализации. Вот в faq приведена реализация этого метода сортировки на C++. В коде есть следующий...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2013, 17:15
Привет! Вот еще темы с ответами:

Сортировка методом Хоара - C++
Здраствуйте помогите пожалуйста с программой не могу запрограммировать сортировку методом Хоара, мне задано зделать 3 сортировки (выбором,...

Сортировка методом Хоара - C++
Дали задание 1. Пусть дано массив a1, a2, ..., an. Необходимо переставить его элементы так, чтобы сначала шла группа элементов, больших...

Сортировка методом Хоара - C++
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке убывания. Вывести массивы до и после...

Сортировка Хоара / Быстрая сортировка - C++
Доброго времени суток. Написал реализацию алгоритма быстрой сортировки. void SortHhoar(int *arr,int f,int l)//Хоара { int mid = (f...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru