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

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

Восстановить пароль Регистрация
 
Spirit987
 Аватар для Spirit987
2 / 2 / 0
Регистрация: 27.03.2013
Сообщений: 50
28.03.2013, 00:49     Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь #1
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++ по возрастанию или убыванию упорядочена указанная строка двумерного массива
Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию в нечетных строках массива и по убыванию в четных строках. C++
Установить упорядочены ли компоненты вектора а по возрастанию или убыванию. C++
C++ Написать функцию, которая сортирует массив по возрастанию или по убыванию, в зависимости от третьего параметра функции.
C++ Работа со списками (Проверить, упорядочены ли числа по возрастанию или по убыванию)
C++ Определить, упорядочены ли по возрастанию или по убыванию цифры в записи натурального n
Отсортировать массив по убыванию или по возрастанию C++
Реализовать сортировку по возрастанию и убыванию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 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
 Аватар для Spirit987
2 / 2 / 0
Регистрация: 27.03.2013
Сообщений: 50
28.03.2013, 23:35  [ТС]     Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь #3
Как то так было

Прежний Раздел: C для начинающих
Новый Раздел: С++ для начинающих
Yandex
Объявления
28.03.2013, 23:35     Реализовать сортировку функции по возрастанию или по убыванию, направление должнен указывать пользователь
Ответ Создать тему
Опции темы

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