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

лексикографически упорядочены числа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ stl remove своя функция http://www.cyberforum.ru/cpp-beginners/thread1081412.html
мне нужна в качестве 3 аргумента функции remove указать структура, компилятор выдаёт ошибку, как исправить?
C++ Вычислить ф-ю http://www.cyberforum.ru/cpp-beginners/thread1081410.html
C++ В матрице найти наибольший прямоугольник состоящий из четных чисел
в матрице найти наибольший прямоугольник состоящий из четных чисел. До этого несколько раз создавал тему, никто так и не смог написать решение(
C++ Разработать редактор изображений
Всем привет! Я начинающий, вообще ничего не смыслю в с++ помогите сделать программу ,которая сможет делать вырезку-обрезку,поворот,уменьшение/увеличение.
C++ Разработать интерпретатор с поддержкой определяемых пользователем функций http://www.cyberforum.ru/cpp-beginners/thread1081384.html
помогите пожалуйста мне нужно разработать интерпритатор с поддержкой определяемых пользователем функций. сам интерпритатор я написала а вот как написать с поддержкой определяемых пользователем функций не знаю. объясните хоть как можно это написать а дальше сама просто не понимаю как это релизовать
C++ Получить три любых символа и напечатать по возрастанию их ASCII-коды доброе время суток . я чайник в програмирование и мне нужана помощь в написание программы которая примет 3 любых символа (буквы,цыфри или значки ) и напечатает по возрастанию кода ASCII . например при вводе : d 4 A на экране пропечатается 4 A d заранее благодарен . подробнее

Показать сообщение отдельно
mms_ua
35 / 35 / 5
Регистрация: 06.09.2010
Сообщений: 71
26.01.2014, 01:25     лексикографически упорядочены числа
Для произвольного исходного массива я рискнул бы предложить следующий вариант
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
#include <stdio.h>
 
#define MAX 2000
 
unsigned int source[MAX];
unsigned int bdc[MAX];
 
 
unsigned int invert(unsigned int rv)
{
    unsigned int lv;
    unsigned int add=1;
    lv=rv+0x06*(rv/10)+0x060*(rv/100)+0x0600*(rv/1000)+0x06000*(rv/10000)+0x060000*(rv/100000);
 
    rv=lv;
    do
    {
        rv=rv>>4;
        lv+=add;
        add=add<<4;
    } while(rv);
    while(lv<0x10000000) lv=lv<<4;
    return lv;
}
 
void sort()
{
    unsigned int min,ix,st;
    for (st=0;st<MAX;st++)
    {
        for (ix=st;ix<MAX;ix++)
        {
            if (bdc[ix]<bdc[st])
            {
                min=bdc[ix];
                bdc[ix]=bdc[st];
                bdc[st]=min;
 
                min=source[ix];
                source[ix]=source[st];
                source[st]=min;
            }
        }
    }
}
 
void init()
{
    unsigned int ix;
    for (ix=0;ix<MAX;ix++)
    {
        source[ix]=ix;
        bdc[ix]=invert(ix);
    }
}
 
void dump()
{
    int ix;
    for (ix=0;ix<MAX;ix++)
    {
        printf("%04d : %d\n",ix+1,source[ix]);
    }
}
 
 
int main()
{
    init();
    sort();
    dump();
    return 0;
}
Очевидно, что алгоритм сортировки можно использовать любой. Для функции invert значения исходного массива могут лежать в диапазоне от 0 до 999999. Ну а в данном примере я его забил от 0 до 2000...
 
Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru