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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Landrian
0 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 15
#1

Создать класс для сортировки массива по убыванию любым способом - C++

24.06.2013, 09:09. Просмотров 662. Ответов 5
Метки нет (Все метки)

создать класс на с++ для сортировки массива по убыванию любым способом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2013, 09:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс для сортировки массива по убыванию любым способом (C++):

Написать программу для сортировки массива по убыванию суммы цифр элементов - C++
Написать программу для с++: Дан массив целых чисел. Написать программу для сортировки массива по убыванию суммы цифр элементов.

Реализовать шифрование текста любым простым способом (+ ключ) - C++
Здравствуйте! мне нужно шифрования текста простым способом (+ ключ) думаю, неплохая идея была бы, если каждая буква шифровалась буквой,...

Алгоритм шифрования DES (необходимо ускорить любым доступным способом) - C++
Есть алгоритм шифрования дес, он работает но работает медленно ну или скажем так ... недостаточно быстро для того чтобы препод его принял....

Отсортировать массив из структур по одному из полей структуры любым способом - C++
Отсортировать массив из структур по одному из полей структуры любым способом.

Создать функцию сортировки последнего столбца матрицы по убыванию - C++
Уважаемые программисты, прошу помощи. Задача:В двумерном массиве определить произведение суммы индексов двух максимальных элементов не...

Составить программу сортировки одномерного числового массива от начала массива к элементу с заданным номером по убыванию (методом выбора) - C++
Помогите составить программу на С++. Заданный номер - 28.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MrGluck
Модератор
Эксперт CЭксперт С++
7211 / 4377 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
24.06.2013, 09:32 #2
SortClass.h
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
#ifndef _SORT_CLASS_
#define _SORT_CLASS_
#include <iostream>
#include <cstddef>
 
template <typename T>
class SortClass
{
  public:
    template <typename InputIterator>
    SortClass(InputIterator beg, InputIterator end) :
        data(new T[end-beg]), size(end-beg), isSorted(false)
    {
        std::size_t index = 0;
        while(beg != end)
            data[index++] = *beg++;
    }
    SortClass(const SortClass &s) : data(new T[s.size]), size(s.size),
        isSorted(s,isSorted)
    {
        for (std::size_t i=0; i < size; i++)
            data[i] = s.data[i];
    }
    SortClass<T> operator= (const SortClass &s)
    {
        if (*this != s)
        {
            delete [] data;
            data = new T[s.size];
            size = s.size;
            isSorted = s.isSorted;
        }
        return *this;
    }
    ~SortClass()
    {
        delete [] data;
    }
    void print()
    {
        if (!isSorted)
            bubbleSort();
        for (std::size_t i=0; i < size; i++)
            std::cout << data[i] << ' ';
        std::cout << std::endl;
    }
 
  protected:
    void bubbleSort()
    {
        for (std::size_t i=0; i < size-1; i++)
            for (std::size_t j=size-1; j > i; j--)
                if (data[i] < data[j])
                {
                    T tmp(data[i]);
                    data[i] = data[j];
                    data[j] = tmp;
                }
        isSorted = true;
    }
    T *data;
    std::size_t size;
    bool isSorted;
};
 
#endif
Пример использования. main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "SortClass.h"
 
int main()
{
    const int N = 5;
    int arr[N] = {2, 4, 1, 3, 5};
    SortClass<int> sc(arr, arr + N);
    sc.print();
}
Electroflower
Форумчанка
289 / 82 / 9
Регистрация: 05.01.2012
Сообщений: 425
Записей в блоге: 1
24.06.2013, 09:34 #3
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
template <class T>
void bubbleSort(T a[], long size){
    long i, j;
    T x;
    for(i=0;i<size;i++){            // i - номер прохода
        for(j=size-1;j>i;j--){     // внутренний цикл прохода
            if(a[j-1]>a[j]){
                x=a[j-1];
                a[j-1]=a[j];
                a[j]=x;
            }
        }
    }
}
 
void main(){
    srand(time(NULL));
    const long SIZE=10;
    int ar[SIZE];
    
    // до сортировки
    for(int i=0;i<SIZE;i++){
        ar[i]=rand()%100;
        cout<<ar[i]<<"\t";
    }
    cout<<"\n\n";
    bubbleSort(ar,SIZE);
 
    // после сортировки
    for(int i=0;i<SIZE;i++){
        cout<<ar[i]<<"\t";
    }
    cout<<"\n\n";
}
MrGluck
Модератор
Эксперт CЭксперт С++
7211 / 4377 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
24.06.2013, 09:39 #4
У меня в 19 строке вместо , точка нужна.
Landrian
0 / 0 / 0
Регистрация: 19.06.2012
Сообщений: 15
24.06.2013, 09:44  [ТС] #5
Цитата Сообщение от MrGluck Посмотреть сообщение
У меня в 19 строке вместо , точка нужна.

а можно код сразу в main.cpp?
MrGluck
Модератор
Эксперт CЭксперт С++
7211 / 4377 / 638
Регистрация: 29.11.2010
Сообщений: 11,887
24.06.2013, 10:04 #6
@Landrian, можно, но не нужно. Ctrl+C, Ctrl+V
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2013, 10:04
Привет! Вот еще темы с ответами:

Код пузырьковой сортировки массива по убыванию - C++
Исходный массив -2.4 10.5 49.9 -49.9 -25.3 35.8 Написать код пузырьковой сортировки данного массива на убывание

Разработать программу сортировки одномерного массива по возрастанию/убыванию - C++
Разработать программу сортировки одномерного массива по возрастанию/убыванию. Элементы массива находятся в файле. Программа должна...

Упорядочить элементы заданного массива по убыванию посредством шейкерной сортировки - C++
Программа должна создавать динамический массив, с количеством элементов указанным пользователем, заполнить через консоль или...

Создать класс с методом сортировки - C++
Добрый день, получил следующее задание, нужно сделать класс, с методом сортировки. Прочитал, но не работает, у меня не получается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.06.2013, 10:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru