С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 938
#1

Выбор сортировки - C++

23.09.2010, 21:54. Просмотров 1259. Ответов 9
Метки нет (Все метки)

Вообщем надо написать программу,которая при вводе определенного символа сортирует по возрастанию или убыванию,все это в консоли.вид сортировки не имеет значения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2010, 21:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выбор сортировки (C++):

Выбор элемента из сортировки - C++
Не подскажите как можно сделать так, чтобы из отсортированных элементов (по убыванию) можно было выбрать например один элемент и...

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

Выбор оптимального алгоритма сортировки. - C++
Характеристика массива:отсортирован в случайном порядке. Необходимо подобрать метод сортировки по возрастанию и обосновать выбор.

Сортировки: пять методов на выбор в одной программе - C++
Помогите написать програмку которая сортирует пьятьма методами на выбор 1) вставками 2) выбором 3) обменом (пузырьком) 4)быстрая...

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

Составить блок – схемы для шейкер- сортировки и сортировки Шелла - C++
Доброго времени суток, очень нужна ваша помощь в решении данной проблемы, буду бесконечно благодарен. Составить блок – схемы для шейкер-...

9
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
23.09.2010, 21:57 #2
ну а в чем проблемы? создаете 2 функции, одна сортирует по возрастанию, другая по убыванию и с помощью switch выбираете нужную функцию и сортируем
0
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 938
23.09.2010, 22:06  [ТС] #3
Код можно какой-нибудь похожий?
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
23.09.2010, 22:12 #4
Тут масив заполняетсо рандомными числами,думаю переделать под свои нужды не составит труда.
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
#include<iostream>
#include<conio.h>
#include<ctime>
using namespace std;
int main()
{
        const int n = 10;
        int m[n]; 
        srand(time(0));
        cout << "Do" << endl;
        for(int i = 0; i < n; i ++)
        {
             m[i] = rand()%700;
             cout << m[i] << ",";   
        }
        for(int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
          {
                  
                  if(m[j] > m[j+1])
                  {
                  int foo = m[j];
                  m[j] = m[j+1];
                  m[j+1] = foo;
                  }
          }
        cout << endl;
        cout << "After(>)" << endl;
        for(int i = 0; i < n; i++)
        cout << m[i] << ",";
        for(int i = n - 1; i >= 1; i--)
          for(int j = 0; j < i; j++)
          {
                  
                  if(m[j] < m[j+1])
                  {
                  int foo = m[j];
                  m[j] = m[j+1];
                  m[j+1] = foo;
                  }
          }
        cout << endl;
        cout << "After(<)" << endl;
        for(int i = 0; i < n; i++)
        cout << m[i] << ",";
        getch();
        return 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9700 / 5650 / 964
Регистрация: 25.07.2009
Сообщений: 10,873
23.09.2010, 22:33 #5
Цитата Сообщение от REALIST07 Посмотреть сообщение
надо написать программу,которая при вводе определенного символа сортирует по возрастанию или убыванию,все это в консоли.вид сортировки не имеет значения.
Чего-то я не понял... Один символ сортировать по возрастанию/убыванию? О_о
0
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
23.09.2010, 22:42 #6
Цитата Сообщение от easybudda Посмотреть сообщение
Один символ сортировать по возрастанию
другой символ сортировать по убыванию
0
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 938
23.09.2010, 22:53  [ТС] #7
нет вот что я имею ввиду
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
#include <iostream>
using namespace std;
 
void main()
{setlocale(LC_ALL,"Russian");
    cout<<"Программа,сортирующая массив в порядке возрастания или убывания"<<endl;
 char s,p,t;int i;
  do{//Для ввода своего значения
    int*a;
    int n=0;
    cout<<"Введите размерность массива:";
    cin>>n;
    a=new int[n];
      for (i=0;i<n;i++)
      {cout<<"a["<<i<<"]=";
       cin>>a[i]; }
 
     do{
             cout<<"Как будем сортировать?(Если по возрастанию,то жмем(+),по убыванию,то(-):";
             cin>>s;
            if (s == '+') 
                             {           for( i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] > a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По возрастанию:"<<endl;
                                                                              for( i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;
 
                             }
                                    
            else if (s == '-')  {           for( i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] < a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По убыванию:"<<endl;
                                                                              for( i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;} 
            
            cout<<"С этим массивом будем работать?(y/n):";
            cin>>t;                        
     }while(t =='y');                 
            cout<<"Хотите продолжить?(y/n):";
             cin>>p;
              }while (p == 'y');
    }
Добавлено через 1 минуту
У меня вопрос как вынести вот этот код как функцию,помогите
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  for( i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] < a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По убыванию:"<<endl;
                                                                              for( i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;}
Добавлено через 27 секунд
чтобы столько раз не писать такой огромный код
0
easybudda
Модератор
Эксперт CЭксперт С++
9700 / 5650 / 964
Регистрация: 25.07.2009
Сообщений: 10,873
23.09.2010, 23:16 #8
REALIST07, в соседней теме с функцией, сортирующей по возрастанию: Re: Сортировка массива в СИ
0
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 938
23.09.2010, 23:22  [ТС] #9
easybudda ,спасибо за информацию,но мне желательно под мой код функцию,потому что он для меня понятен
0
Crudelis
Шаровик затейник
676 / 418 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
24.09.2010, 01:45 #10
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
#include <iostream>
using namespace std;
 
void funcplus(int a[],int n)
{
 for( int i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] > a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По возрастанию:"<<endl;
                                                                              for( int i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;
}
void funcminus(int a[], int n)
{
 for( int i = n - 1; i >= 1; i--)
                                         for(int j = 0; j < i; j++)
                                          {
                  
                                               if(a[j] < a[j+1])
                                                                  {int buffer = a[j];
                                                                    a[j] = a[j+1];
                                                                    a[j+1] = buffer;}
                                          }
                                                                              cout << endl;
                                                                              cout << "По убыванию:"<<endl;
                                                                              for( int i = 0; i < n; i++)
                                                                              {cout << a[i] << " ";}
                                                                              cout<<endl;
} 
 
void main()
{setlocale(LC_ALL,"Russian");
    cout<<"Программа,сортирующая массив в порядке возрастания или убывания"<<endl;
 char s,p,t;
  do{//Для ввода своего значения
    int*a;
    int n=0;
    cout<<"Введите размерность массива:";
    cin>>n;
    a=new int[n];
      for (int i=0;i<n;i++)
      {cout<<"a["<<i<<"]=";
       cin>>a[i]; }
 
     do{
             cout<<"Как будем сортировать?(Если по возрастанию,то жмем(+),по убыванию,то(-):";
             cin>>s;
            if (s == '+') 
            funcplus(a,n);
                                    
            else if (s == '-')  
            funcminus(a,n);
            
            cout<<"С этим массивом будем работать?(y/n):";
            cin>>t;                        
     }while(t =='y');                 
            cout<<"Хотите продолжить?(y/n):";
             cin>>p;
              }while (p == 'y');
    }
1
24.09.2010, 01:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2010, 01:45
Привет! Вот еще темы с ответами:

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

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

Сделать так, чтобы после сортировки вектора указатель показывал на тот же элемент, что и до сортировки - C++
Есть вектор(STL) элементов. У меня есть указатель на определенный элемент. Я хочу сделать так, чтобы после сортировки этого вектора...

Напишите функцию сортировки, похожую на функцию которая использовалась для сортировки массивов, с той разницей, что ее а - C++
Напишите функцию сортировки, похожую на функцию которая использовалась для сортировки массивов, с той разницей, что ее аргументом должен...


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

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

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