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

Сортировка разными методами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сделать заливку произвольной фигуры http://www.cyberforum.ru/cpp-beginners/thread869853.html
Перерыл весь инет - исходников ноль. может есть у кого?
C++ Прочитать каждую нечетную и четную строку в файле На вход идет файл, в котором каждая четная строка является размером пакета, а в нечетной идет название пакета. Прим.: Abcdfe 23.5 Kb SFGKsdfksd 457.5 Kb Нужно вывести размеры пакетов (с их... http://www.cyberforum.ru/cpp-beginners/thread869841.html
Перестановка букв в строке C++
программа, которая для заданной строки S меняет местами первую букву со второй, вторую с третьей и так далее
C++ Подскажите, что исправить (Структура STUDENT)
Помогите пожалуйста с работой! Вот задание: Структура STUDENT с полями: фамилия и инициалы; номер группы; успеваемость в виде массива из пяти элементов. Действия с массивом структур:...
C++ Последовательности чисел http://www.cyberforum.ru/cpp-beginners/thread869821.html
Дано вещественное число А. Найти в последовательности чисел i bi = Ʃ|k-4| k=1 Первое число больше А.
C++ Ввести класс для работы с объектом "рациональная дробь" Ввести класс для работы с объектом "рациональная дробь".Реализовать: а)сложение(вычитание) двух дробей; б)приведение дроби к несократимому виду. подробнее

Показать сообщение отдельно
valentyn1994
2 / 2 / 1
Регистрация: 21.02.2013
Сообщений: 13

Сортировка разными методами - C++

19.05.2013, 01:57. Просмотров 378. Ответов 6
Метки (Все метки)

Добрый вечер, подскажите пожалуйста, как переделать, что бы не менялся исходный массив при сортировке. Извините что текст в коде на укр.Спасибо.
Кликните здесь для просмотра всего текста
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <stdio.h>
#include <locale>
#include <iostream>
#include <iomanip>
#include <ctime>
 
using namespace std;
 
int menu_select ();
int** gen(int *m,int *n);
void show(int **a,int m, int n);
void bulb(int **a,int m, int n);
void vubor(int **a,int m,int n);
 
void main()
{
    setlocale(LC_CTYPE, "Russian");
    srand(time(NULL));
    int m,n,**a;
    char choice;
    for (; ;) 
    {
        choice = menu_select ();
        switch (choice) 
        {
            case 1: a=gen(&m,&n); break;
            case 2: show(a,m,n); break;
            case 3: bulb(a,m,n); break;
            case 4: vubor(a,m,n); break;
            case 5:  break;
            case 6:  break;
            case 7: exit (0);
        }
    }
    system ("pause");
}
int menu_select ()
{
    char s [80];
    int c;
    printf ("\n1. Генерувати масив \n");
    printf ("2. Вивести масив \n");
    printf ("3. Бульбашковий \n");
    printf ("4. Вибором \n");
    printf ("5. Завантажити файл \n");
    printf ("6. Переможець \n");
    printf ("7. Вихiд \n");
    do 
    {
        cout<<"\n Введiть номер потрiбного пункту: ";
        _flushall();
        gets (s);
        c = atoi (s);
    } while (c <0 || c> 7);
    return c;
}
int** gen(int *m,int *n)
{
do 
    {
        cout <<"Введiть кiлькiсть рядкiв:";
        cin >>*m;
    }
while(*m <=0);
do {
        cout <<"Введiть кiлькiсть стовбчикiв:";
        cin >>*n;
    }
while(*n<=0);
 
int **a=new int*[*m];
    for(int i=0;i< *m;i++)
    {
        a[i]=new int [*n];
        for(int j=0;j< *n;j++)
        {
            a[i][j]=rand()%9;
        }   
    }
return a;
}
 
void show(int **a,int m, int n)
{
    for(int i=0;i< m;i++)
    {
        for(int j=0;j< n;j++)
            cout <<setw(2)<<a[i][j] << " ";
    cout <<endl;
    }
}
 
void bulb(int **a,int m, int n)
{
    int por=0,per=0;
 
    for (int k=0; k<n; k++)
    {
        for (int l=0; l<m; l++)
        {       
            for (int i=0; i<n; i++)
            {
                for (int j=m-1; j>0; j--)
                {
                    if (a[j][i]<a[j-1][i])
                    {
                        swap(a[j][i],a[j-1][i]);
                        per++;
                    }
                    por++;
                }
            }
 
        }
    }
 
    cout <<"Вiдсортований масив"<<endl;
    
    for(int i=0;i< m;i++)
    {
        for(int j=0;j< n;j++)
            cout <<setw(2)<<a[i][j] << " ";
    cout <<endl;
    }
 
    cout <<"Кiлькiсть порiвнянь: "<<por<<endl;
    cout <<"Кiлькiсть перемiщень: "<<per<<endl;
}
void vubor(int** temp,int m,int n)
{
    int por=0,per=0;
    int min=0;
    int k=m;
    for (int i=0; i<n; i++)
    {
        
        for (int j=0; j<m; j++)
            {
                min=j;
                for (int k=j+1; k<m; k++)
                {
                    if(temp[min][i]>temp[k][i])
                    {
                        swap(temp[min][i],temp[k][i]);
                    }
                }
                
            }
        
    }
 
    cout <<"Вiдсортований масив"<<endl;
    
    for(int i=0;i< m;i++)
    {
        for(int j=0;j< n;j++)
            cout <<setw(2)<<temp[i][j] << " ";
    cout <<endl;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru