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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
#1

Поразрядная сортировка символьных массивов - C++

19.11.2011, 11:24. Просмотров 2347. Ответов 7
Метки нет (Все метки)

Всем привет! Кто нибудь может показать пример кода, для поразрядной сортировки символьных массивов, с числовыми массивами разобрался, а с символьными не могу, буду весьма признателен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 11:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поразрядная сортировка символьных массивов (C++):

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

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

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

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

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

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

7
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 13:04 #2
~GiPeRPrOgEr~, символы - это тоже числа
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.11.2011, 14:13 #3
~GiPeRPrOgEr~, ничего не меняется (только объявление массива)
1
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
19.11.2011, 14:20  [ТС] #4
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
#include "iostream"
using namespace std;
const int n=10, col_razr=3;
int velich_razr(int chislo,int razr)
{
        while(razr>1)
        {
                chislo/=10;
                razr--;
        }
        return chislo%10;
}
 
void sort_razr(int dop_mas[n][n], int mas[n], int razr)
{
        int mas_col[n], i,j, temp=0;
        for(i=0; i<n; i++)
                mas_col[i]=0;
        for(i=0; i<n; i++)
        {
                int a=velich_razr(mas[i], razr);
                dop_mas[mas_col[a]][a]=mas[i];
                mas_col[a]++;
        }
        for(i=0; i<n; i++)
        {
                for(j=0; j<mas_col[i]; j++)
                {
                        mas[temp]=dop_mas[j][i];
                        temp++;
                }
        }
}
 
int main()
{
        
        int razr, i;
        int mas[n]={623, 543, 120, 935, 423, 610, 732, 126, 784, 648};
        int dop_mas[n][n];
        for(razr=1; razr<4; razr++)
                sort_razr(dop_mas, mas, razr);
        for(i=0; i<n; i++)
                cout<<mas[i]<<endl;
        return 0;
}

Я вот не понимаю если будет символьный, то как остаток от деления будет выглядеть, если не сложно подправте пожалуйста код.
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 14:25 #5
Цитата Сообщение от ~GiPeRPrOgEr~ Посмотреть сообщение
Я вот не понимаю если будет символьный, то как остаток от деления будет выглядеть
char - это число таблицы ASCII, потому к типу char применимы все операции целочисленных типов
1
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
19.11.2011, 14:27  [ТС] #6
Действительно, а я парился, спасибо большое.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
19.11.2011, 14:31 #7
Поменял на ходу
Вроде работает
Исправь только значения массива
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 "stdafx.h"
#include<iostream>
#include <time.h>
 
 
using namespace std;
const int n=10, col_razr=3;
int velich_razr(int chislo,int razr)
{
        while(razr>1)
        {
                chislo/=10;
                razr--;
        }
        return chislo%10;
}
 
void sort_razr(char dop_mas[n][n], char mas[n], int razr)
{
        int mas_col[n], i,j, temp=0;
        for(i=0; i<n; i++)
                mas_col[i]=0;
        for(i=0; i<n; i++)
        {
                int a=velich_razr(mas[i], razr);
                dop_mas[mas_col[a]][a]=mas[i];
                mas_col[a]++;
        }
        for(i=0; i<n; i++)
        {
                for(j=0; j<mas_col[i]; j++)
                {
                        mas[temp]=dop_mas[j][i];
                        temp++;
                }
        }
}
 
int _tmain(int argc, _TCHAR* argv[])
 
{
        
        int razr, i;
        char mas[n]={41, 42, 60, 55, 43, 40, 42, 46, 44, 48};
        char dop_mas[n][n];
        for(razr=1; razr<4; razr++)
                sort_razr(dop_mas, mas, razr);
        for(i=0; i<n; i++)
                cout<<mas[i]<<endl;
 
        getchar ();
        return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Jupiter Посмотреть сообщение
char - это число таблицы ASCII, потому к типу char применимы все операции целочисленных типов
ну или как вариант просто выводить
C
1
2
int c=40;//число
printf ("%c",c);//на экране символ
1
~GiPeRPrOgEr~
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 85
19.11.2011, 14:32  [ТС] #8
Еще раз спасибо, теперь то все ясно!
0
19.11.2011, 14:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 14:32
Привет! Вот еще темы с ответами:

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

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

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

Копирование символьных массивов - C++
Вот самые проблемные места: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; ...


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

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

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