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

скорость сортировки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Высота n-нарного дерева http://www.cyberforum.ru/cpp-beginners/thread269023.html
Подскажите алгоритм нахождения высоты n-нарного дерева, я написала, но высота находится не всегда точно. Не знаю как избежать этого. struct tree { int k; //элемент дерева int kol_child;...
C++ Упорядочить последовательность методом простого выбора по фамилиям жителей. Разработать объект-вектор. В файле хранятся сведения о жителях некоторой улицы: фамилия, адрес, год рождения. Все сведения записываются в памяти в виде последовательности. Вводится некоторая... http://www.cyberforum.ru/cpp-beginners/thread269022.html
Строка в С++ C++
Дана строка в с++. Как вывести все слова , которые содержат заданную букву?
C++ Числа
Дано натуральное число. Верно ли, что нет в нем цифр a.
C++ Указатели http://www.cyberforum.ru/cpp-beginners/thread268989.html
Здравствуйте. Прошу ответить на мои вопросы: 1)Как понять, когда именно нужно использовать указатели? Т.е. когда без них невозможно. 2)Это вопрос уже к про). Даже не знаю, как его сформулировать....
C++ Передать двумерный массив в функцию подскажи те как передать двумерный массив в функцию?) подробнее

Показать сообщение отдельно
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
03.04.2011, 00:23
^Tecktonik_KiLLeR, Можно так зделать
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>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
void inp(int** x,int n);
void collumn(int** x,int n);
void row(int** x,int n);
void out(int** x,int n);
 
#define START(s) s = clock();
#define FINISH(d, s) d = static_cast<double>(clock() - s) / CLOCKS_PER_SEC;
 
int main()
{
   int n;
   clock_t start;
   double duration;
   cout<<"n=";
   cin>>n;
    char select;
        int** x=new int*[n];
        for(int i=0;i<n;i++)
                x[i]=new int[n];
                cout<<"Enter i for input"
                        <<endl<<"Enter c for collumn sort"
                        <<endl<<"Enter r for row sort"
                        <<endl<<"Enter o for out"
                        <<endl<<"Enter e for exit"
                        <<endl;
        for(;;)
        {
            cin>>select;
                switch(select)
                {
            case 'i':
            case'I':
                     inp(x,n);
                     cout<<"complite"<<endl;
                        break;
                case 'c':
            case'C':
                     START(start);
                     collumn(x,n);
                     FINISH(duration, start);
                     cout<<"complite \ntime = " << duration << endl;
                        break;
                case 'r':
            case 'R':
                     row(x,n);
                     cout<<"complite"<<endl;
                        break;
                case 'o':
            case 'O':
                     out(x,n);
                     cout<<"complite"<<endl;
 
                  break;
 
                case 'e':
            case 'E':
 
                        default: cout<<"Wrong command!"<<endl;
 
                }
 
        }
        for(int i=0;i<n;i++)
                delete[] x[i];
 
        delete[] x;
 
}
 
 
void inp(int** x,int n)
{
        srand(time(0));
        for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                        *(*(x+i)+j)=rand()%10;
}
 
void out(int** x,int n)
{
        for(int i=0;i<n;i++)
                {
                        for(int j=0;j<n;j++)
                                cout<<*(*(x+i)+j)<<" ";
                        cout<<endl;
        }
        cout<<endl;
}
 
void collumn(int** x,int n)
{
        int buff;
        bool t;
 
          for(int j=0;j<n;j++)
         {
            t=0;
            while(t==0)
               {
               t=1;
                    for(int i=0;i<n-1;i++)
                      if(*(*(x+i)+j)>*(*(x+i+1)+j))
                        {
                            buff=*(*(x+i)+j);
                            *(*(x+i)+j)=*(*(x+i+1)+j);
                            *(*(x+i+1)+j)=buff;
                            t=0;
                        }
               }
        }
}
 
 
void row(int** x,int n)
{
        int buff;
        bool t;
             for(int i=0;i<n;i++)
          {
             t=0;
             while(t==0)
                {
                        t=1;
                        for(int j=0;j<n-1;j++)
                          if(*(*(x+i)+j)>*(*(x+i)+j+1))
                            {
                              buff=*(*(x+i)+j);
                              *(*(x+i)+j)=*(*(x+i)+j+1);
                              *(*(x+i)+j+1)=buff;
                              t=0;
                     }
               }
          }
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru