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

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

Войти
Регистрация
Восстановить пароль
 
Spirit987
2 / 2 / 0
Регистрация: 27.03.2013
Сообщений: 50
#1

Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь - C++

28.03.2013, 00:49. Просмотров 583. Ответов 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
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
template <class T>
void sort(T ar[],T size,T trend){
    int x;
 
//Пузырьковый метод сортировки
    for(int i=0;i<size;i++){            
        for(int j=size-1;j>i;j--){     
            if(ar[j-1]>ar[j]){
                x=ar[j-1];
                ar[j-1]=ar[j];
                ar[j]=x;
            }
        }
    }
}
void main(){
    srand(time(NULL));
    const int size=10;
    int array[size];
    int trend=1;
 
//Заполнение массива
    for (int i=0;i<size;i++){
    array[i]=rand()%100;
    cout<<array[i]<<"  ";
    }
    cout<<"\n\n";
 
//Объявление в какую сторону сортировать 
    cout<<"Trend sort 1= from smaller before greater \
        \n 0= from greater before smaller number array"<<"\n\n";
    cin>>trend;
 
//Вызов функции
    sort(array,size,trend);
 
    for (int j=0;j<size;j++){
    cout<<array[j]<<"  ";
    }
    cout<<"\n\n";
}
//Ваш вариант кода...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2013, 00:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь (C++):

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

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

Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных строках. - C++
Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных...

Реализовать сортировку массива структур типа "Сотрудник" по убыванию стажа - C++
Здравствуйте, уважаемые форумчане! Задача: Информация о сотрудниках предприятия содержит ФИО, номер отдела, должность, дату начала...

Отсортировать массив по убыванию или по возрастанию - C++
Дан массив натуральных чисел А( N), значения элементов которого лежат в диапазоне . Отсортировать этот массив по убыванию или по...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
anmartex
...
1703 / 1196 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
28.03.2013, 09:00 #2
Вообще-то вы разделом ошиблись. Это раздел для C, а не C++.

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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
template <class T>
bool decrease(const T& a, const T& b)
{
   return (a < b);
}
 
template <class T>
bool increase(const T& a, const T& b)
{
   return (a > b);
}
 
template <class T>
void sort(T ar[], int size,  int trend)
{
   T x;
 
   bool (*compare)(const T&, const T&) = (trend == 1) ? increase<T> : decrease<T>;
 
   //Пузырьковый метод сортировки
   for (int i = 0; i < size; i++)
   {
      for (int j = size - 1; j > i; j--)
      {
         if (compare(ar[j - 1], ar[j]))
         {
            x = ar[j - 1];
            ar[j - 1] = ar[j];
            ar[j] = x;
         }
      }
   }
}
 
int main()
{
   srand(time(NULL));
   const int size = 10;
   int array[size];
   int trend = 1;
 
   //Заполнение массива
   for (int i = 0; i < size; i++)
   {
      array[i] = rand() % 100;
      cout << array[i] << " ";
   }
   cout << endl << endl;
 
   //Объявление в какую сторону сортировать
   cout << "Trend sort 1= from smaller before greater" << endl
        << "0= from greater before smaller number array" << endl << endl;
   cin >> trend;
 
   //Вызов функции
   sort(array, size, trend);
 
   for (int j = 0; j < size; j++)
   {
      cout << array[j] << " ";
   }
   cout << endl << endl;
 
   return 0;
}
Добавлено через 21 минуту
А лучше, наверное, даже так:
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
template <class T>
bool decrease(const T& a, const T& b)
{
   return (a < b);
}
 
template <class T>
bool increase(const T& a, const T& b)
{
   return (a > b);
}
 
template <typename T, typename F>
void sort(T ar[], int size, F compare)
{
   T x;
 
   //Пузырьковый метод сортировки
   for (int i = 0; i < size; i++)
   {
      for (int j = size - 1; j > i; j--)
      {
         if (compare(ar[j - 1], ar[j]))
         {
            x = ar[j - 1];
            ar[j - 1] = ar[j];
            ar[j] = x;
         }
      }
   }
}
 
int main()
{
   srand(time(NULL));
   const int size = 10;
   int array[size];
   int trend = 1;
 
   //Заполнение массива
   for (int i = 0; i < size; i++)
   {
      array[i] = rand() % 100;
      cout << array[i] << " ";
   }
   cout << endl << endl;
 
   //Объявление в какую сторону сортировать
   cout << "Trend sort 1= from smaller before greater" << endl
        << "0= from greater before smaller number array" << endl << endl;
   cin >> trend;
 
   //Вызов функции
   if (trend)
   {
      sort(array, size, increase<int>);
   }
   else
   {
      sort(array, size, decrease<int>);
   }
 
   for (int j = 0; j < size; j++)
   {
      cout << array[j] << " ";
   }
   cout << endl << endl;
 
   return 0;
}
Spirit987
2 / 2 / 0
Регистрация: 27.03.2013
Сообщений: 50
28.03.2013, 23:35  [ТС] #3
Как то так было

Прежний Раздел: C для начинающих
Новый Раздел: С++ для начинающих
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2013, 23:35
Привет! Вот еще темы с ответами:

Установить упорядочены ли компоненты вектора а по возрастанию или убыванию. - C++
1.Установить упорядочены ли компоненты вектора а по возрастанию или убыванию. 2.Установить имеются ли у вектора а одинаковые компоненты.

Сортировка массива по возрастанию или по убыванию, в зависимости от параметра - C++
Дан массив чисел размерностью 10 элементов. Написать программу, которая сортирует массив по возрастанию или по убыванию, в зависимости от...

Добавить сортировку массива по возрастанию и убыванию - Turbo Pascal
Нужно прикрутить вывод на экран не только в порядке возрастания, но и в порядке убывания. Буду благодарен за любую помощь. const n =...

Настроить сортировку по убыванию и возрастанию в DGV - C#
Вообщем есть такая таблица.Помогите пожалуйста настроить сортировку по убываниюи возрастаниюби фильтр на этой форме!занимаюсь по книжке но...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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