Сортировка в двоичной записи числа

Тема в разделе "Общие вопросы по С и С++", создана пользователем 9a9z9a, 18 фев 2011.

  1. 9a9z9a

    9a9z9a Гость

    Здравствуйте. Объясните, пожайлуста, как это отсортировать массив по возрастанию количества единиц в двоичной записи часла? Не понимаю условия. Я так пнимаю ,есть ,например число 777 и его двоичный код 1100001001. Ну и как тут сортировать? Или я чего недопонимаю? ;)
     
  2. ierofant

    ierofant Гость

    Что же тут непонятного...
    Допустим числа 3 (11), 4 (100), 7 (111).

    Меньше всего единиц в 4-ке, больше всего в 7-ке.
    То есть получится при сортировке: 4, 3, 7.
     
  3. 9a9z9a

    9a9z9a Гость

    ierofant ,спасибо. Возник еще один вопрос. Как присвоить указателю на int значение функции , возвращающей int?

    int f(int *x);
    *pB++ = f(pA); , где pA адрес первой строки матрицы, pB ардесс второй. Во вторую будем записывать количество едениц в числе, которое передаеться в функцию (pA) :)
     
  4. ierofant

    ierofant Гость

    Ничего не понял, что вы хотите. Вот мой вариант решения:
    Код (C++):
    #include <iostream>
    #include <bitset>
    #include <algorithm>
    #include <ctime>

    typedef std::bitset<7> Bits;
    void my_rand (Bits &_bits) {_bits = rand () % 100;}
    void bits_out (const Bits &_bits) {std::cout << _bits.to_ulong () << "\t-\t" << _bits << std::endl;}
    bool comp (const Bits &_bits1, const Bits &_bits2) {return _bits1.count () < _bits2.count ();}

    int main ()
    {
    srand (time (NULL));

    int size;
    std::cout << "Введите количество элементов: ", std::cin >> size;

    Bits mas [size];
    std::for_each (mas, mas + size, &my_rand);

    std::cout << "Исходный массив: " << std::endl;
    std::for_each (mas, mas + size, &bits_out);
    std::cout << std::endl;

    std::sort (mas, mas + size, &comp);

    std::cout << "Отсортировынный массив: " << std::endl;
    std::for_each (mas, mas + size, &bits_out);
    std::cout << std::endl;

    return 0;
    }
     
Загрузка...
Похожие Темы - Сортировка двоичной записи
  1. vera2014
    Ответов:
    0
    Просмотров:
    1.070
  2. Liori
    Ответов:
    2
    Просмотров:
    1.005
  3. FCDK
    Ответов:
    0
    Просмотров:
    1.264
  4. ленарано
    Ответов:
    1
    Просмотров:
    1.103
  5. Creder
    Ответов:
    0
    Просмотров:
    1.345

Поделиться этой страницей