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

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

Войти
Регистрация
Восстановить пароль
 
alisska
2 / 2 / 0
Регистрация: 10.03.2013
Сообщений: 39
#1

поразрядная сортировка - C++

10.12.2013, 21:55. Просмотров 199. Ответов 0
Метки нет (Все метки)

Помогите разобраться в этой сортировке, пожалуйста.( Каждый исходный массив должен обрабатываться подпрограммой сортировки с подсчетом и выводом фактического числа выполненных сравнений и пересылок. Поскольку каждый из универсальных методов выполняет сортировку “на месте”, т.е. изменяет исходный массив, то для наглядности работы можно передавать в подпрограмму сортировки копию исходного массива, объявив его как параметр-значение.)
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
85
86
87
88
89
90
91
92
#include <iostream>
#include <cstdlib>
using namespace std;
 
int *CreateAuto(int n)
{
if (n<=10000 && n>1) 
{ 
method=0; 
int *arr= new int [n]; 
for ( int i=0; i<n; i++) 
arr[i]=rand()%n; 
return arr; 
} 
else 
return NULL;
}
 
void Show(int *arr, int n)
{
cout << endl; 
for ( int i=0; i<n; i++) 
cout << arr[i] << " "; 
cout << endl;
}
 
void Copy(int *arr1, int *arr2, int n)
{
for ( int i=0; i<n; i++) 
arr2[i]=arr1[i];
}
 
struct ITEM {
int info; 
ITEM *next;
};
 
void AddItem(ITEM *pItem, int info)
{
while(pItem->next!=NULL) 
pItem=pItem->next; 
pItem->next = new ITEM; 
pItem->next->info=info; 
pItem->next->next=NULL;
}
 
void ClearList(ITEM *head)
{
while(head!=NULL) 
{ 
ITEM *tmp=head; 
head=head->next; 
delete tmp; 
}
}
 
void DigitSort(int *arr, int n)
{
ITEM *sort = new ITEM [10]; 
int k=n-1; 
int i=0; 
int moves=0; 
while(k>=1) 
{ 
i++; 
k/=10; 
for( int j=0; j<10; j++) 
sort[j].next=NULL; 
for ( int j=0; j<n; j++, moves++) 
{ 
int div=1; 
for ( int l=0;l<i;l++,div*=10); 
AddItem(&sort[((arr[j]%div)*10)/div],arr[j]); 
} 
for ( int j=0, l=0; l<n; j++) 
{ 
ITEM *tmp=sort[j].next; 
while(tmp!=NULL) 
{ 
arr[l]=tmp->info; 
tmp=tmp->next; 
l++; 
moves++; 
} 
} 
for( int j=0; j<10; j++) 
ClearList(sort[j].next); 
} 
Show(arr,n); 
cout << "Кол-во пересылок = " << moves << endl; 
delete[] sort;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 21:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос поразрядная сортировка (C++):

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

Поразрядная сортировка - C++
Подскажите пожалуйста почему если ввести больше 100 элементов то код не работает? #include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include...

Поразрядная сортировка - C++
Программа вылетает, не пойму почему? подскажите пожалуйста. #include &quot;iostream&quot; using namespace std; int n, col_razr=0; int...

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2013, 21:55
Привет! Вот еще темы с ответами:

Поразрядная сортировка и его недостатки - C++
Собствено сабж в &quot;плохости&quot; поразрядной сортировки. Ведь, если она отрабатывает за линейное время и не требует спец. аппаратной поддержки,...

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

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

Поразрядная сортировка символьных массивов - C++
Всем привет! Кто нибудь может показать пример кода, для поразрядной сортировки символьных массивов, с числовыми массивами разобрался, а с ...


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

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

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