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

первое число мусор при сортировке второй функцией - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Мультисписки http://www.cyberforum.ru/cpp-beginners/thread670749.html
Подскажите пожалуйста, как представить разреженную матрицу в виде мультисписков. Хотя бы сам алгоритм. Разряженная матрица - матрица, в которой нулевых эелементов больше, чем ненулевых. Кака добавлять элементы в эту матрицу? Что делать с нулевыми?
C++ Проблемы с палиндромом Здравствуйте,у меня вопрос,у заношу переменные в массив A и с номером e почему-то после того как завершает заносит в e хранится число на две единицы больше которое должно быть например ввёл 4-е буквы а на выходе e равно 6 если e заминусовать на 2 тогда всё работает,но всё-же из-за чего это? #include "stdio.h" #include "conio.h" int main() { int e=0; char t;int h=0; char a;int w; do { http://www.cyberforum.ru/cpp-beginners/thread670739.html
Определить в предложении слова максимальной и минимальной длины и поменять их местами. C C++
Доброе время суток!:) Уважаемы программисты, помогите, пожалуйста решить задачу: Дана строка предложение. Определить в предложении слова максимальной и минимальной длины и поменять их местами. (Решить на С) Я, понимаю, что задача не из лёгких, поэтому помогите решить хотя бы первую часть задачи, т.е. определение максимального и минимального слова в предложении. Буду благодарен, да же за...
разобрать двумерный массив по функциям C++
Помогите разобрать двумерный массив по функциям #include "stdafx.h" #include <iostream>//библиотека #include <ctime>//для времени using namespace std; #include <conio.h>// для getch #include <clocale>// руссификатор int _tmain(int argc, _TCHAR* argv)
C++ Программа ввода иформации о маршрутном такси http://www.cyberforum.ru/cpp-beginners/thread670721.html
Написать программу ввода информации о маршрутном такси(номер,стоимость,вид транспорта), где стоимость может быть как целочисленным значением, так и вещественным. Написать программу удаления информации о маршрутном такси с указанным номером. У меня есть обрывок программы, но при вводе значения для удаления информации взять брать первое значение, оно не удаляется... #include "stdafx.h" #include...
C++ Передача ф-ции как параметра другой ф-ции struct pupil{ char surname; int school; int answer; int num; } tmp, a; int usl(int i, pupil a) { } подробнее

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

первое число мусор при сортировке второй функцией - C++

14.10.2012, 13:23. Просмотров 241. Ответов 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
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
161
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
void sort_in(int *A,int N,int &sr, int &per)
{
    int i, j;
    int x;
    for (i=1;i<N;i++)
    {
        x=A[i];
        for (j=i-1; (j>=0) && (A[j]>x); j-- )
        A[j+1]=A[j];
        A[j+1]=x;
    }
    return;
}
 
void quick(int *A, int N)  //быстрая сортировка, возможно не учтены аргументы
{   int i=0, j=N;
    int temp, p;
 
    p = A[ N>>1 ];      // центральный элемент
 
  // процедура разделения
  do {
    while ( A[i] < p ) i++;
    while ( A[j] > p ) j--;
 
    if (i <= j) {
      temp = A[i]; A[i] = A[j]; A[j] = temp;
      i++; j--;
    }
  } while ( i<=j );
 
 
  // рекурсивные вызовы, если есть, что сортировать 
  if ( j > 0 ) quick(A, j);
  if ( N > i ) quick(A+i, N-i);
    
    return;
}
 
int main (void)
{
    ofstream fout ("result.txt",ios::out);
    int rezhim;
    int N,up,s;
    int *A,i;
    int sr,per;
    int t;
    int sp;
    srand ((unsigned)time(NULL));
    setlocale (NULL,"rus");
    rezhim=9;
    int step;
    while (rezhim)
    {
        system("cls");
        cout<<"Выберите режим: \n";
        cout<<"1. Сортировка одного массива\n";
        cout<<"2. Обработка статистических данных\n";
        cout<<"0. Выход\n";
        cin>>rezhim;
        if (rezhim==1)
        {
            cout<<"Введите размер массива: ";
            cin>>N;
            cout<<"Введите диапазон случайных значений: ";
            cin>>up;
            cout<<"Выберите режим сортировки: \n";
            cout<<"1. Сортировка простым выбором\n";
            cout<<"2. Быстрая сортировка\n";
            cin>>s;
            A=new int [N];
            for (i=0;i<N;i++)
                A[i]=rand()%up;
            t=clock();
            if (s==1)
                sort_in(A,N,sr,per);
            else
                quick(A,N);
            t-=clock();
            t=-t;
            for (i=0;i<N;i++)
                fout<<A[i]<<" ";
            fout<<endl;
            fout<<"Размер массива: "<<N<<endl;
            fout<<"Заданный диапозон: "<<up<<endl;
            fout<<"time: "<<t<<endl;
        }
        else if (rezhim==2)
        {
            cout<<"Введите способ формирования элементов: \n";
            cout<<"1. Случайно\n";
            cout<<"2. По возрастанию\n";
            cout<<"3. По убыванию\n";
            cin>>sp;
            cout<<"Задайте диапазон и шаг изменения размеров: ";
            cin>>up>>step;
            cout<<"Выберите режим сортировки: \n";
            cout<<"1. Сортировка простым выбором\n";
            cout<<"2. Быстрая сортировка\n";
            cin>>s;
            if (s==1)
                fout<<"Сортировка простым выбором!\n";
            else
                fout<<"Быстрая сортировка!\n";
            for (N=step;N<=up;N+=step)
            {
                A=new int [N];
                switch (sp)
                {
                case 1:
                    for (i=0;i<N;i++)
                        A[i]=rand()%up;
                    t=clock();
                    if (s==1)
                        sort_in(A,N,sr,per);
                    else
                        quick(A,N);
                    t-=clock();
                    t=-t;
                    fout<<"kol: "<<N<<", time: "<<t<<endl;
                    break;
                case 2:
                    for (i=0;i<N;i++)
                        A[i]=i+1;
                    t=clock();
                    if (s==1)
                        sort_in(A,N,sr,per);
                    else
                        quick(A,N);
                    t-=clock();
                    t=-t;
                    fout<<"kol: "<<N<<", time: "<<t<<endl;
                    break;
                default:
                    for (i=0;i<N;i++)
                        A[i]=N+1-i;
                    t=clock();
                    if (s==1)
                        sort_in(A,N,sr,per);
                    else
                        quick(A,N);
                    t-=clock();
                    t=-t;
                    fout<<"kol: "<<N<<", time: "<<t<<endl;
                }
            }
        }
    }
    
    /////////
    //delete []A;
    //A=0;
 
    delete []A;
    A=0;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru