Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Allexina
1

Трехпутевая поразрядная быстрая сортировка

02.04.2011, 15:05. Показов 848. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Выдает несколько ошибок, исправляла, все равно не работает
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <vcl.h>
#pragma hdrstop
#include <time.h>
 
#include "Unit1.h"
#include "SortMarking.cpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
#define ch(A) digit(A, d)
int N = 10000;
int* Mas1;
void generator(int maxN);
 
template <class Item>
void quicksortX(Item a[], int l, int r, int d)
  { 
    int i, j, k, p, q; int v;
    if (r-l <= M) { insertion(a, l, r); return; }
    v = ch(a[r]); i = l-1; j = r; p = l-1; q = r;
    while (i < j)
      { 
        while (ch(a[++i]) < v) ;
        while (v < ch(a[--j])) if (j == l) break;
        if (i > j) break;
        exch(a[i], a[j]);
        if (ch(a[i])==v) { p++; exch(a[p], a[i]); }
        if (v==ch(a[j])) { q--; exch(a[j], a[q]); }
      }
    if (p == q)
      { if (v != '\0') quicksortX(a, l, r, d+1);
        return; }
    if (ch(a[i]) < v) i++;
    for (k = l; k <= p; k++, j--) exch(a[k], a[j]);
    for (k = r; k >= q; k--, i++) exch(a[k], a[i]);
    quicksortX(a, l, j, d);
    if ((i == r) && (ch(a[i]) == v)) i++;
    if (v != '\0') quicksortX(a, j+1, i-1, d+1);
    quicksortX(a, i, r, d);
  };
 
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::N1Click(TObject *Sender)
{
  time_t start;
  AnsiString s;
 
  start = clock();
  generator(N);
  Memo1->Lines->Add("Èñõîíûé ìàññèâ:");
  for(int i = 0; i<N; ++i) s = s + " " + IntToStr(Mas1[i]);
  Memo1->Lines->Add(s);
  quickSortX(Mas1, 0, N - 1, 3);
  Memo1->Lines->Add("");
  Memo1->Lines->Add("Îòñîðòèðîâàííûé ìàññèâ:");
  s = "";
  for(int i = 0; i<N; ++i) s = s + " " + IntToStr(Mas1[i]);
  Memo1->Lines->Add(s);
  Memo1->Lines->Add("");
  Memo1->Lines->Add("Ïðîøëî " + AnsiString((clock() - start)/CLOCKS_PER_SEC) + " ñåêóíä.");
}
 
void generator(int maxN)
  {
    randomize();
    if(maxN<=0) return;
 
    if((Mas1=(int *)calloc(maxN,sizeof(int)))==NULL)
      {
        ShowMessage("Out of memorry!") ;
        exit(1);
      }
 
    for(int c=0;c<maxN;++c) Mas1[c]= random(1000) - random(1000);
  }
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2011, 15:05
Ответы с готовыми решениями:

Трехпутевая поразрядная быстрая сортировка
нужна помощь с написанием програмки на тему: Трехпутевая поразрядная быстрая сортировка заранее...

Поразрядная сортировка
Необходимо реализовать метод поразрядной сортировки. Нужно отсортировать последовательность так,...

Поразрядная сортировка
Программа вылетает, не пойму почему? подскажите пожалуйста. #include &quot;iostream&quot; using namespace...

Поразрядная сортировка
*Задача* Программа запрашивает число, пользователь вводит , например 10000 , тогда программа...

0
02.04.2011, 15:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2011, 15:05
Помогаю со студенческими работами здесь

Поразрядная сортировка
Подскажите пожалуйста почему если ввести больше 100 элементов то код не работает? #include...

Поразрядная сортировка
Помогите решить проблему с кодом #include &quot;stdafx.h&quot; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt;...

Поразрядная сортировка MSD
Поразрядная сортировка MSD , есть???

Цифровая/поразрядная сортировка
Привет, знаний не хватает и времени тоже. прощу помощи Нужно в c++ реализовать цифровую...

Поразрядная сортировка массива
Дан массив двоичных чисел, нужно отсортировать его с помощью поразрядной сортировки, начиная со...

Поразрядная цифровая сортировка
Не пойму, как правильно исправить ошибки (С++ учу недавно, толком не разобралась) Подскажите,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru