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

интересная задача по сорту! :) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ комментарии к программе http://www.cyberforum.ru/cpp-beginners/thread413707.html
помогите пожалуйста!!! нужно написать комментарии вот к этой программе (нужны к каждой строчке) и еще подскажите эта программа рабочая? //метод строчн-столбовых перестановок #include <stdio.h> #include <conio.h> #include <iostream.h> #include <string.h> using namespace std;
C++ Очередь С++ (очень надо) Смоделировать очередь, в которой реализован такой механизм изъятия элемента из очереди: начало очереди всегда находится в первом элементе массива; при изъятии одного элемента из очереди, все остальные элементы перемещаются на одну позицию ближе к началу массива. После обработки всей заданной входной последовательности найти среднее арифметическое всех элементов очереди. есть прога очень... http://www.cyberforum.ru/cpp-beginners/thread413703.html
C++ Вывод одного из заданных чисел
Каким образом можно сделать программу, так, чтобы выводилось одно из дробных значений? По возможности пожалуйста поясните на примере с пятью числами: 1.4; 2.8; 3.5; 3.25; 0.8.
C++ матрицы на с++, ваше предложение,консультация
В общем, ребята, у меня есть код программы, и само задание, задание: Создать квадратную матрицу целых чисел размером 9х9. Если по условию задания матрицу следует заполнить случайными числами, рекомендуем выбирать эти числа из диапазона 0 - 99. Если по условию задания в матрицу следует записать ЛП - линейную последовательность чисел, имеется в виду последовательность: 1, 2, 3, ... на рисунке...
C++ Колпак http://www.cyberforum.ru/cpp-beginners/thread413691.html
Определите максимальный размер шара, который можно спрятать под "колпаком" – круглым прямым конусом (основание является кругом, ось конуса перпендикулярна основанию). Во входном файле в первой строке содержится два числа, разделенных пробелом – длина образующей конуса L (1 ≤ L ≤ 100) и диаметр основания D (1 ≤ D < 2·L). В выходной файл вывести одно число с 4 десятичными знаками – радиус шара...
C++ Класс матрица (не работает конструктор копирования) так вот,что-то глючит конструктор копирования, хотя ошибок компиляции не дает(( #include <fstream> #include <iostream> #include <cstdlib> using namespace std; class Matrix { int i,j; подробнее

Показать сообщение отдельно
pasha5442893
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 3
21.12.2011, 17:35     интересная задача по сорту! :)
люди пожалусто помогите последняя задача по лабе...старый долг!

Условие!:
Имеется массив из n чисел от 0 до (2 в степени k) -
1, каждое из которых мы будем рассматривать как k-битовое слово.
Используя проверки "i-ый бит равен 0" и "i-ый бит равен 1" вмес-
то сравнений, отсортировать все числа за время порядка n
Решение. Отсортируем числа по последнему биту (см. предыду-
щую задачу), затем по предпоследнему и так далее. В результате
они будут отсортированы. В самом деле, индукцией по i легко до-
казать, что после i шагов любые два числа, отличающиеся только в
i последних битах, идут в правильном порядке. (Вариант: после i
шагов i-битовые концы чисел идут в правильном порядке.)

Аналогичный алгоритм может быть применен для m-ичной систе-
мы счисления вместо двоичной.

Помогите отсортить Двоичные числа ПЛИЗ

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
#include <iostream>  // сортирует сначала числа потом переводит в двоичную, а надо отсортить ДВОИЧНЫЕ!
#include <list>
 
using namespace std;
 
struct Node{
    int deg [64];
    //int k;
    Node (){ for (int i = 0; i<64; i++) deg [i]=0;};
};
 
int main (){
    Node a [100];
    int n;
    cout<<"Vvedite kolichestvo chisel"<<endl;
    cin >> n;
    for (int i = 0; i< n; i++){
        int p;
        cin >> p;
        int j=0;
        while (p){
            a [i].deg [j]=p%2;
            p/=2;
            j++;
        }
//      a [i].k = j-1;
 
 
    }
    list <Node> l0,l1;
    l0.clear ();
    l1.clear ();
    for (int i=0; i<63; i++){
        for (int j = 0; j<n; j++){
            if (a [j].deg [i]) l1.push_back (a [j]); else l0.push_back (a[j]);
        }
        int j = 0;
        while (!l0.empty ()) {
            a[j]=l0.front ();
            l0.pop_front ();
            j++;
        }
        while (!l1.empty ()) {
            a[j]=l1.front ();
            l1.pop_front ();
            j++;
        }
    }
    for (int i = 0; i<n; i++){
        for (int j = 0           ; j<64; j++) cout << a [i].deg [j];
        cout << endl;
        
    }
    system ("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru