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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Бесконечный цикл http://www.cyberforum.ru/cpp-beginners/thread555655.html
Простите что с таким лёгким вопросом, но мистика окутывает мою учёбу всё больше и больше ^^ Тут програмка которая считает сумму каждого рядка в массиве квадратном, в плоть до основной диагонали....
C++ Массив вещественных чисел сортированная по возрастанию Нужно Создать программу, сортирующую массив вещественных чисел по возрастанию. Число элементов массива вводится пользователем перед вводом значений элементов массива (использовать функции... http://www.cyberforum.ru/cpp-beginners/thread555653.html
C++ обработка форм на CGI C++
Здравствуйте! Строю генеалогическое дерево на CGI C++. Для того что бы его построить пользователю предлагается заполнить форму, типа ваше имя, дети, дети детей и т.д. Получается дерево растет...
Вычислить... C++
Дано натуральное число N. Вычислить
C++ Копирование одного раздела в другой http://www.cyberforum.ru/cpp-beginners/thread555623.html
Задание: Скопировать определенный (задается в коде) раздел реестра в другой раздел (так же задается в коде). Есть пример работы с реестром.В нем я разобрался.Но изменить под задание не получается ...
C++ Запись в файл Собствено у меня в програме функция записи в файл реализована следующим образом std::string fileName; std::cout << "Введите слово: "; std::cin >> fileName; std::ofstream fw("result.txt"... подробнее

Показать сообщение отдельно
zewer
1366 / 1055 / 111
Регистрация: 07.01.2011
Сообщений: 6,925

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

23.04.2012, 02:09. Просмотров 437. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.