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

Написание алгоритма - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Область видимости http://www.cyberforum.ru/cpp-beginners/thread642563.html
Здравствуйте. Тут такое дело: #include <vector> class SomeClass { public: SomeClass( std::vector< int > v ) : vec( v ) {} void someFunc() { // do smth }
C++ Оператор разыменования Почему когда выделяем динамическую память для одной переменной, то, чтобы записать туда значение, мы используем оператор разыменования (*), int *a = new int; *a = 5; а когда выделяем для... http://www.cyberforum.ru/cpp-beginners/thread642558.html
C++ Чтение и запись блока данных в двоичном режиме
// Чтение и запись блоков данных — использование read() и write(). #include <iostream> #include <fstream> #include <windows.h> using namespace std; int main() { SetConsoleCP(1251);...
C++ Определение размера одномерного массива
Добрый день. Необходимо задать размер одномерного массива. В цикле for стоит переменная - счетчик, которая увеличивается на единицу при определенных условиях. После всех повторений этого цикла мне...
C++ как сделать в MS VS 2010 express output не в консоль в output windows http://www.cyberforum.ru/cpp-beginners/thread642521.html
сабж заранее спасибо
C++ Блокировка кнопки выхода А можно как нибудь заблокировать кнопку выхода, чтобы из программы нельзя было выйти таким способом??? подробнее

Показать сообщение отдельно
Mindz
7 / 7 / 1
Регистрация: 31.01.2010
Сообщений: 51
25.08.2012, 21:46  [ТС]
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
#include <iostream>
#include <time.h>
 
#define SIZE 10
 
 
using namespace std;
 
void setMedian( int[], int );
void setSize( int[], int );
 
int Median, Average, LeftSize, RightSize;                    
 
 
int main()
{
    system( "TITLE CodeNurf :D" );
    system( "COLOR A" );
    
    int A[SIZE] = { 0 }, Summ = 0;
    
    srand( unsigned ( time(0) ) );
    
    cout << "Massive: ";
    
    for( int index = 0; index < SIZE ; index++ ) {
         A[index] = rand() % 100;
         Summ += A[index];
         cout << "  " << A[index];
    }
    
    Average = Summ/SIZE;
    
    setSize( A, SIZE );
    
    cout << "\nSize of left half: " << LeftSize << endl
         << "Size of right half: " << RightSize << endl;
    
    setMedian( A, SIZE );
    
    cout << "\n=======================" << endl
         << "\nAverage of massive: " << Average << endl
         << "\nMedian of massive: " << Median << endl;
         
    system( "pause" );
    
    return 0;        
}
 
void setMedian( int Array[], int Size )
{
    int lh[LeftSize], rh[RightSize], Max, Min;
    
    for( int index = 0; index < Size; index++ ) {
         if( Array[index] == Average ) {
             Median = Array[index];
             break;
         } else {    
                if( Array[index] < Average ) lh[index] = Array[index];
                   else if( Array[index] > Average ) rh[index] = Array[index];               
                if( index > 0 ) {
                    Max = lh[index] > lh[index - 1] ? lh[index] : lh[index - 1];
                    Min = lh[index] < lh[index - 1] ? rh[index] : rh[index - 1];
                }
           }
           Median = ( Average - Max ) < ( Min - Average ) ? Max : Min;
    }        
}
 
void setSize( int A[], int size )
{
     for( int index = 0; index < size; index++ ) {
          if( A[index] > Average ) RightSize++;
              else LeftSize++;
     }            
}
На счет точности вы абсолютно правы,оно отбросит всю дробную составляющую.Но для меня на данном этапе важно понять как сделать дальше.

Добавлено через 5 минут
Вот собственно задание:
Сортировка разделением с использованием в качестве медианы среднего арифметического на текущем интервале и подсветкой разделяемой части.
Способ разделения: движение двух индексов от краев к середине и обменом (по необходимости) находящихся под ними элементов.

Я реализовал почти все,то есть я графически обазначил середину массива и отсортировал элементы.Но теперь хочу внести коррективы в эту задачу и сделать медиану элементом,и относительно этого элемента вывести сортировку.
Тот код который я привел,это тестовый вариант то есть проверка на работу алгоритма.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru