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

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

Войти
Регистрация
Восстановить пароль
 
zewer
1233 / 927 / 95
Регистрация: 07.01.2011
Сообщений: 6,440
#1

Битовая сортировка - C++

23.04.2012, 02:09. Просмотров 432. Ответов 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
#include <iostream>
using namespace std;
 
int a[100], b[100], n;
 
int digit(int n, int p)
{
    return (n >> p & 1);
}
int main()
{
    setlocale (LC_ALL,"Ukrainian");
    int m = 0;
    cout << "Введiть кiлькiсть елементiв у вхiднiй послiдовностi: ";
    cin >> n;//вводимо кількість елементів у вхідній послідовності
    cout << "\n";
    for (int i = 0; i < n; i++)
    {
        cout << "Введiть " << i+1 << " елемент послiдовностi: ";
        cin >> a[i];//вводимо елементи вхідної послідовності
    }
    int k = sizeof(int);
    k = k*8;
    for(int i = 0; i < k; i++)
    {
        for(int k = 0; k < n; k++)
            cout << a[k] << " ";
        cout << "\n";
 
        int c[2] = {0};
        for(int j = 0; j < n; j++)
            c[digit(a[j],i)]++;
        for(int j = 1; j < 2; j++)
            c[j] += c[j - 1];
        for(int j = n - 1; j > -1;j--)
        {
            b[--c[digit(a[j],i)]] = a[j];
            m++;
        }
        for(int j = 0; j < n; j++)
            a[j] = b[j];
    }
    cout << "Вiдсортована послiдовнiсть: ";
    for(int i = 0; i < n; i++)
        cout << a[i] << " ";
    cout << "\n";
    return 0;
}
Добавлено через 2 часа 5 минут
уже помощь не требуеться, сам переписал алгоритм сортировки))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2012, 02:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Битовая сортировка (C++):

Битовая сортировка! - C++
Всем привет. Нужно написать реферат по теме &quot;Битовая сортировка&quot;. Такого в инете, а также Википедиях и прочих джерелах даже примерно не...

Битовая операция -> - C++
Что делает операция -&gt; К примеру, есть структура: struct BIT{ unsigned int cod1:3; :1;...

Битовая арифметика - C++
Почему при: int myVar = 15, mask = 0x00 00 00 01; //выделил разряды printf(&quot;%d&quot;, myVar &amp; mask); Я получаю -1? Конечно, я мог бы...

битовая маска - C++
как использовать битовую маску? за пример можно взять выделение k-того разряда из n-разрядного числа (в пофиг какой системе исчесления).

Битовая инверсия - C++
Доброго времени суток! Я что-то запутался с побитовой инверсией. В коде прописываю int a=5; cout&lt;&lt;~a&lt;&lt;endl; Это же...

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

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

Битовая маска - C++
Как в шифровании битовыми перестановками применить маску?

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

битовая маска - C++
надо разработать функцию проверки правильности битовой маски. 32-х битная “маска” считается действительной, если ее двоичное...

собрать число , битовая арифметика - C++
Помогите пожалуйста, а то с битовой арифметикой проблемы, получаю из color числа его каналы по следующей формуле R = (color &gt;&gt; 16) &amp;...


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

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

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