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

сортирует не совсем правильно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Закрывается раньше времени http://www.cyberforum.ru/cpp-beginners/thread227466.html
Задача: Дана действительная матрица размером n × m, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденным значением. Проблема такова: программа вылетает, не показав результата, то есть ввожу кол-во строк, затем кол-во столбцов. Затем ввожу цифры, после ввода последней цифры в...
C++ функции.двумерный массив помогите плиз) буду оч признательна) создать двумерный массив и меняя местами строки матрицы, отсортировать по возрастанию ее первый столбец Добавлено через 18 минут пишу в с++ через Visual studio http://www.cyberforum.ru/cpp-beginners/thread227448.html
C++ Дано натуральное число,заменить в нем все <единицы> на <пятерки>. Вводимые числа в промежутке [10;9999]
Дано натуральное число,заменить в нем все <единицы> на <пятерки>. Вводимые числа в промежутке Добавлено через 15 минут помогите плиз написать прогу(((
Ошибка C++
Объясните почему если записать так то работает все ок #include <iostream.h> using namespace std; int main() { int n, i, j; int a ; srand(time(0)); cout << "n= "; cin >> n;
C++ ФПД http://www.cyberforum.ru/cpp-beginners/thread227428.html
люди добрые, никак не могу понять, почему программа работает не верно. Задание: Записать в файл данные о сдаче 1-го экзамена в учебной группе.Структура записи : Фамилия студента, оценка.Для примера - 5 студентов.Далее у студента, фамилия которого задается, ввести новую оценку,затем рассчитать средний балл в группе. Ошибка в том, что при замене переписывается не одна строка, а все...
C++ Ошибочка маленькая и не понятная((( Исправите ошибку.За ране спасибо! #include "stdafx.h" #include <conio.h> #include <iostream> #include <math.h> using namespace std; int _tmain(int argc, _TCHAR* argv) {double a,b,S; cout<<"Vedite Vneshniy radiys kolca"; подробнее

Показать сообщение отдельно
Belek
 Аватар для Belek
6 / 6 / 0
Регистрация: 15.12.2010
Сообщений: 200
11.01.2011, 23:24     сортирует не совсем правильно
программа сортирует 3 массива сортировкой Шелла и пузырьком, считает время. ток ошибка есть, не могу найти. сортировка Шелла сортирует но в первый и последний элемент записывает не понятное число. помогите пожалуйста.
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
#include <iostream.h>
#include <time.h>
#include <fstream.h>
#include <stdlib.h>
 
void BUBBLE(int array[], int size);
void  Shell_Sort(int k[],int n);
 
main()
{
 
    ofstream outfile5("outfile5.txt");
    ofstream outfile10("outfile10.txt");
    ofstream outfile20("outfile20.txt");
    ofstream outfile5s("outfile5s.txt");
    ofstream outfile10s("outfile10s.txt");
    ofstream outfile20s("outfile20s.txt");
    
    int BArray_5[5000], BArray_10[10000], BArray_20[20000], SArray_5[5000], SArray_10[10000], SArray_20[20000];
    int N=5000, M=10000, L=20000;
    
    for(int i=0;i<N;i++)
    {
        
        BArray_5[i]=rand()%100000;
        SArray_5[i]=BArray_5[i];
    }
    
    for(i=0;i<M;i++)
    {
        
        BArray_10[i]=rand()%100000;
        SArray_10[i]=BArray_10[i];
    }
    
    for(i=0;i<L;i++)
    {
        BArray_20[i]=rand()%100000;
        SArray_20[i]=BArray_20[i];
    }
 
    cout<<"bubble: "<<endl;
 
    double t1, t2, t3, t4, t5, t6;
 
    clock_t mytime2=clock();
    
    BUBBLE(BArray_5,N);
    t1=(double)(clock()-mytime2)/10000;
    cout<<N<<": "<<t1<<" sec."<<endl;
    
     mytime2=clock();
    BUBBLE(BArray_10,M);
    t2=(double)(clock()-mytime2)/10000;
    cout<<M<<": "<<t2<<" sec."<<endl;       
 
         mytime2=clock();
    BUBBLE(BArray_20,L);
    t3=(double)(clock()-mytime2)/10000;
    cout<<L
        <<": "<<t3<<" sec."<<endl;      
 
    for(i=0;i<N;i++){
        outfile5<<BArray_5[i]<<endl;
    }
 
    for(i=0;i<M;i++)
    {   
        outfile10<<BArray_10[i]<<endl;
    }
 
 
    for(i=0;i<L;i++)
    {   
        outfile20<<BArray_20[i]<<endl;
    }
 
    cout<<"Shell: "<<endl;
 
    clock_t mytime=clock();
    
    Shell_Sort(SArray_5,N);
    t4=(double)(clock()-mytime)/10000;
    cout<<N<<": "<<t4<<" sec."<<endl;           
 
    Shell_Sort(SArray_10,M);
    t5=(double)(clock()-mytime)/10000;
    cout<<M<<": "<<t5<<" sec."<<endl;       
    
    Shell_Sort(SArray_20,L);
    t6=(double)(clock()-mytime)/10000;
    cout<<L<<": "<<t6<<" sec."<<endl;       
 
    for(i=0;i<N+1;i++)
        outfile5s<<SArray_5[i]<<endl;
 
    for(i=0;i<M+1;i++)
        outfile10s<<SArray_10[i]<<endl;
 
    for(i=0;i<L+1;i++)
        outfile20s<<SArray_20[i]<<endl;
 
 
    return 0;
}
 
void BUBBLE(int array[], int size)
{
         for(int i=0;i<size;i++)
            for(int j=1;j<size;j++)
               if (array[j]<array[j-1])
               {
                 int b=array[j];
                 array[j]=array[j-1];
                 array[j-1]=b;
               }
}
void swap(int *k,int a,int b)
{
    int t;
    t=k[a];k[a]=k[b];k[b]=t;
}
void  Shell_Sort(int k[],int n)
{ 
    int d=n/2;
    while(d>0) {
        for(int i=d+1; i<n; i++) {
            int j=i-d;
            while(j>0)
                if (k[j]>k[j+d]){
              
              swap(k ,j , j+d);
                j=j-d;
        }
        else j=0;
    }
    d=d/2;
}
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru