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

Поразрядная сортировка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ сумма диагоналей??? http://www.cyberforum.ru/cpp-beginners/thread409956.html
Вот в чем вопрос! Вроде все правильно, но сумму неправильно вычисляет, а именно нужно: Найти максимальную, из всех сумм диагоналей, параллельных главной! #include <iostream> #include <iomanip> #include <cmath> using namespace std; // Прототип для ввода двумерного массива int** inputm (int n); // Прототип для вывода двумерного массива void outputm (int** a, int n);
C++ Разработать алгоритм обработки двумерного массива Разработать алгоритм обработки двумерного массива размера n*m. Числа m и n, а также элементы массива взять из файла. Необходимо каждый элемент массива увеличить на сумму элементов его строки. результат записать в другой файл. пожалуйста помогите очень нужно!! http://www.cyberforum.ru/cpp-beginners/thread409954.html
C++ Абстрактны классы
Здравствуйте, форумчане! у меня вот такая вот задача! Разработать класс список как абстрактный базовый класс с интерфейсом - сохранить и восстановить. Создать производные классы стек и очередь с реализованными интерфейсами восстановить и вытащить. обычные абстрактные классы у меня получается создавать! на пример на задачу : Разработать абстрактный класс - форма с интерфейсом площадь,...
Упорядочить строки матрицы в порядке неубывания их первых элементов C++
Всем привет! Помогите пожалуйста решить задачу, хз как делать :) Дана матpица A. Упорядочить строки матрицы в порядке не убывания их первых элементов. Всё чnо я смог, это вывести исходную матрицу на экран, и все :DDD Заранее спасибо ! // задача // #include "stdafx.h" #include <stdlib.h> #include <stdio.h>
C++ Перевод чисел из 10 сс в 8 сс на С++ http://www.cyberforum.ru/cpp-beginners/thread409932.html
Задание: дается число m в десятичной системе счисления, надо преобразовать в 8-ричную систему счисления и подсчитать количество четных чисел n в восьмеричной записи числа. И всё это написать на C++ ! Помогите пожалуйста написать код программы, уже не знаю к кому обратиться :(
C++ одновимерни массивы и сложный поиск помогите пажалуста я не могу понять как создать и вывести масив Ук=fabs(sin(x/3.12)+cos(pow(x,2)))-8.3*sin(3*x) с элементами к = 1,2...,7. Добавлено через 12 минут #include<iostream.h> #include<math.h> #include <conio.h> #include <condefs.h> #define N10 подробнее

Показать сообщение отдельно
vova287
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 5
17.12.2011, 21:02     Поразрядная сортировка
Доброе время суток, написал программу поразрядной сортировки по определенному критерию должно сортировать, проблем в логике вроде бы не должно быть, но вот проблема в функции yy в том что не хватает выделения памяти для mask. даже при присвоение типа unsigned long long выходит за предел . Подскажите в чем причина и как с ней бороться
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
// количество бит для сортировки
#define POINTER_BITSIZE 32
 
void print(int **a, int size, int j = -1, char ch = '|')
{
    if (j != -1) cout << "j = " << j << endl;
    for (int i = POINTER_BITSIZE; i > 0; i--)
        cout << (i - 1) / 10;
    cout << endl;
    for (int i = POINTER_BITSIZE; i > 0; i--)
        cout << (i - 1) % 10;
    cout << endl;
    for (int i = POINTER_BITSIZE - 1; i > j; i--)
        cout << " ";
    if (j != -1) cout << ch;
    cout << endl;
    for (int i = 0; i < size; i++)
    {
        for (int j = POINTER_BITSIZE - 1; j >= 0; j--)
            cout << (((unsigned int)a[i] >> j) & 1);
        cout.width(15);
        cout << (unsigned int)a[i] << endl;
    }
    getchar();
}
 
int yy (int * AA, int * BB)
{
    int sizeOf = sizeof(*AA)*8;
    
     int first = 1;
     int * mask = new int [sizeOf];
     int * direct = new int [sizeOf];
    if (first)
    {
        first = 0;
        for (unsigned long i=0, bit=0, bitStep=2, bitIndex = 0; i<sizeOf; i++)
        {
            mask[i] = 1 << bit;
            direct[i] = (bitIndex%2 == 0) ? 1 : -1;
            bitIndex++;
            if ((bit + bitStep < sizeOf) && !(bit + bitStep < 0)) bit += bitStep;
            else
            {
                bit += bitStep - 1;
                bitStep = -bitStep;
            }
        }
    }
    
    int A = *AA, B = *BB;
    for (int i=0; i<sizeOf; i++)
    {
        printf("%i\n", mask[i]);
        int a = A & mask[i], b = B & mask[i];
        if (a == b) return 0;
        else return direct[i];
    }
}
 
int ** XXXsort(int ** a, int size)
{
    vector<int *> myvector (a, a+size);
    vector<int *>::iterator it;
    sort (myvector.begin(), myvector.end(), yy);
    int ** b = new int * [size];
    int i = 0;
    for (it=myvector.begin(); it!=myvector.end(); it++) b[i++] = (*it);
    return b;    
}
 
 
int main()
{
    
    int size;
    char k;
    cout << "input size"<<"\n";
    cin >> size;
    
    int **a = new int * [size];
    cout << "input by hand"<<"\n";
    cin>>k;
        if (tolower(k) == 'y')
            {
                for (int i = 0; i < size; i++)
                    {
                        int x;
                        cin >> x;
                        a[i] = (int *)x;
                    }
            }
        else 
            {
                for (int i = 0; i < size; i++)
                a[i] = (int *)rand();
            
            }
 
    cout << "before sort:" << endl;
    print(a, size);
    int ** b = XXXsort(a, size);
    delete [] a;
    cout << "after sort:" << endl;
    print(b, size);
    delete [] b;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru