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

Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов - C++

Восстановить пароль Регистрация
 
Труфольдино
0 / 0 / 0
Регистрация: 10.01.2012
Сообщений: 8
06.06.2012, 10:14     Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов #1
Задача:
Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов (т.е. кол-во операторов ограничено всего пятью).

Как сделать такой класс? Использовать сторонние библиотеки вроде как нельзя. Все мои идеи требуют значительно больше, чем пять операторов
Буду очень признателен помощи и объяснениям по коду.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2012, 10:14     Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов
Посмотрите здесь:

Выполнить сортировку целочисленного массива C++
Выполнить сортировку одномерного массива X(100) методом Шейкера. C++
C++ Выполнить сортировку одномерного массива X(100) методом вычисления адреса
C++ Выполнить сортировку одномерного массива X(100) методом Шелла
C++ Выполнить сортировку одномерного массива X(100) методом бинарных вставок
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
06.06.2012, 16:54     Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов #2
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 <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
class Mass
{
private:
    static const int size=15;
    int mas[size];
public:
    Mass();
    void Output();
    void Sort();
};
Mass::Mass()
{
    srand((unsigned)time(NULL));
    for(int i=0;i<size;i++)
    {
        mas[i]=rand()%100;
    }
}
void Mass::Output()
{
    cout<<"Massiv: "<<endl;
    for(int i=0;i<size;i++)
    {
        cout<<mas[i]<<" ";
    }
}
void Mass::Sort() // пузырьковая сортировка, самая короткая и простая. Что использовать ещё меньше операторов, нужно подключать библиотеки.
{
    for(int i=0;i<size;i++)
    {
        for(int j=0;j<size-1;j++)
        {
            if(mas[j]>mas[j+1])
            {
                int temp=mas[j];
                mas[j]=mas[j+1];
                mas[j+1]=temp;
            }
        }
    }
}
int main()
{
    Mass obj;
    obj.Output();
    obj.Sort();
    cout<<endl;
    obj.Output();
    getch();
    return 0;
}
Труфольдино
0 / 0 / 0
Регистрация: 10.01.2012
Сообщений: 8
06.06.2012, 20:49  [ТС]     Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов #3
Большое спасибо за помощь, Андрей!
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.06.2012, 08:52     Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов #4
Цитата Сообщение от Andrey.K Посмотреть сообщение
for(int i=0;i<size;i++) { for(int j=0;j<size-1;j++) { if(mas[j]>mas[j+1]) { int temp=mas[j]; mas[j]=mas[j+1]; mas[j+1]=temp; } } }
Сичтаем: for, =, <, >, ++, +, []. Итого 7.
Для сортировки необъодимы:
1. Опретор цикла.
2. Оператор присваивания.
3. Опретор сложения, инкремента, декремента, или вычитания.
4. Оператор индексации, или размыенования.
5. Опретор сравнения.
Всё, пять штук уже есть. Два разных сравнения исключаются, также исключается одновременное применение и сложения, и инкремента.

Добавлено через 8 минут
По такому условию будет:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Mass::Sort()
{
    for(int i=0;i<size-1;i=i+1)
    {
        for(int j=i+1;j<size;j=j+1)
        {
            if(mas[j]<mas[i])
            {
                int temp=mas[i];
                mas[i]=mas[j];
                mas[j]=temp;
            }
        }
    }
}
Вот теперь их 5.
Yandex
Объявления
07.06.2012, 08:52     Описать класс, делающий сортировку целочисленного одномерного массива, с использованием всего 5-ти операторов
Ответ Создать тему
Опции темы

Текущее время: 02:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru