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

Методы сортировки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ странный ostream в 2010 http://www.cyberforum.ru/cpp-beginners/thread353761.html
привет, в 2010 VS не работает ostream_iterator<int>(cout," ") copy(mas.begin(),mas.end(),ostream_iterator<int>(cout," ")); как починить? задача вывести таблицу произвольного размера типа 5 3 5...
C++ Блуждание пьяницы и перегрузка операторов Всем привет! помогите люди добрые решить проблему. В книге по которой я учусь в качестве примера перегрузки операторов дана программа, которая осуществляет такую затею: вводится длина шага и... http://www.cyberforum.ru/cpp-beginners/thread353760.html
C++ Помогите исправить ошибку в коде с++
Решаю задачу с вот такими вычислениями. for(x=1;x < r-1; x++) { while ((sqr(x) + sqr(y)) > sqr(r)) { y=y-1; k=k+kol(x3+x, y3-y, y3+y) + kol(x3-x,y3-y,y3+y); }...
C++ fatal error LNK1120: 1 неразрешенных внешних элементов
ту проблему исправил. #include <iostream> #include <conio.h> using namespace std; class rational { public: int a,b,c,d;
C++ Перегруженная функция http://www.cyberforum.ru/cpp-beginners/thread353705.html
У меня тут задача я её правильно написал но почему то визуалка говорит что перегруженная функция. #include <iostream> #include <cmath> #define PI 3.14159265 using namespace std; int main(){...
C++ Str в long double и наоборот Одним из недостатков C++ являеться отсутствие для бизнес-программ встроенного типа для денежных значений, такого, как $173 698 001,32. Такой денежный тип должен иметь возможность для хранения числа с... подробнее

Показать сообщение отдельно
Krol
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 49

Методы сортировки - C++

19.09.2011, 18:41. Просмотров 716. Ответов 11
Метки (Все метки)

Помогите исправить некоторые недочеты в проге.
Задание: написать программу сортировки массива, по убыванию и возрастанию.
Проблема в том, что массив сортируется только по возрастанию, по убыванию никак...

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
#include<stdio.h>
#include<locale.h>
#include<time.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
#define SWAP(A, B) { int t = A; A = B; B = t; }
int razmer = 0, vibor, vibor2, temp, k, t, last, left, right, obmen = 0, sravnenie = 0, * s, i, j = 0; char y,n;
void randomMassiv ()
{
    system("cls");
    srand ( unsigned( time ( NULL) ) );
    for( i = 0; i < razmer; i++)     
    {
        s[i] = (rand()%500);
        printf ("%d\n",s[i]);
    }
}
void incrMassiv ()
{
    system("cls");
    for( i=0; i<=razmer; i++)     
    {
        s[i]=i+100;
        printf("%d  \n",s[i]);
    }
}
void decrMassiv ()
{
    system("cls");
    for( i=500,k=0; i>500-razmer; i--,k++)     
    {
        s[k]=i;
        printf("%d  \n",s[k]);
    }
}
void insertVstavkaSort ()
{
    for ( i=1; i < razmer; i++) 
    {                           // цикл проходов, i - номер прохода
        temp = s[i];            // поиск места элемента в готовой последовательности 
        for ( j=i-1; j>=0 && s[j] > temp; j--)
        { 
            sravnenie++;
            s[j+1] = s[j];      // сдвигаем элемент направо, пока не дошли
            obmen++;
        }                       
                            // место найдено, вставить элемент
        s[j+1] = temp;
        sravnenie++;
    }
        for (k=0;k<razmer;k++)
        {
                printf ("%d\t",s[k]);
        }
        printf("\nСравнений: %d\nОбменов: %d\nСумма сравнений и обменов: %d\n",sravnenie,obmen,sravnenie+obmen);
}
void insertBubbleSort ()
{
    for (i = razmer - 1; i > 0; i--)
    {
        for (j = 0; j < i; j++)
        {
            sravnenie++;
            if (s[j] > s[j + 1]) 
            {
                SWAP( s[j], s[j + 1] );
                obmen++;
            }
        }
    }
    for (k=0;k<razmer;k++)//вывод отсортированного массива
    {
        printf ("%d\t",s[k]);
    }
    printf("\nСравнений: %d\nОбменов: %d\nСумма сравнений и обменов: %d\n",sravnenie,obmen,sravnenie+obmen);
}
int main ()
{   
    setlocale(LC_CTYPE,"rus");
    system("cls");
    printf("Введите размерность массива:\n");
    scanf("%d",&razmer);
    s = (int *)calloc(razmer, sizeof(int));
    system("cls");
    printf("Выберите нужный тип массива:\n");
    printf("1. Случайный массив\n");
    printf("2. Отсортированный по возрастанию\n");
    printf("3. Отсортированный по убыванию\n");
    scanf ("%d",&vibor);
    switch (vibor)
    {
    case 1:
        {
            randomMassiv();
            break;
        }
    case 2:
        {
            randomMassiv();
            printf ("\n");
            incrMassiv();
            break;
        }
    case 3:
        {
            randomMassiv();
            printf ("\n");
            decrMassiv();
            break;
        }
    }
    // SORTIROVKA
    system ("cls");
    printf ("Выберите метод сортировки\n\n");
    printf ("1. Метод простых включений\n\n");
    printf ("2. Метод пузырька\n");
    scanf ("%d",&vibor2);
    switch (vibor2)
    {
    case 1:
        {
            randomMassiv();
            printf ("\n");
            insertVstavkaSort();
            break;
        }
    case 2:
        {
            randomMassiv();
            printf ("\n");
            insertBubbleSort ();
            break;
        }
    }
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru