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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Высота n-нарного дерева http://www.cyberforum.ru/cpp-beginners/thread269023.html
Подскажите алгоритм нахождения высоты n-нарного дерева, я написала, но высота находится не всегда точно. Не знаю как избежать этого. struct tree { int k; //элемент дерева int kol_child; //количество потомков tree **child; }; tree *root=NULL; //корень дерева int *n=new int; //допустим пять ветвей в дереве for (int i=0;i<5;i++)
C++ Упорядочить последовательность методом простого выбора по фамилиям жителей. Разработать объект-вектор. В файле хранятся сведения о жителях некоторой улицы: фамилия, адрес, год рождения. Все сведения записываются в памяти в виде последовательности. Вводится некоторая текущая дата.В последовательности найти всех жителей, имеющих право участвовать в выборах( возраст >=18). Упорядочить последовательность методом простого выбора по фамилиям жителей. Полученные... http://www.cyberforum.ru/cpp-beginners/thread269022.html
Строка в С++ C++
Дана строка в с++. Как вывести все слова , которые содержат заданную букву?
C++ Числа
Дано натуральное число. Верно ли, что нет в нем цифр a.
C++ Указатели http://www.cyberforum.ru/cpp-beginners/thread268989.html
Здравствуйте. Прошу ответить на мои вопросы: 1)Как понять, когда именно нужно использовать указатели? Т.е. когда без них невозможно. 2)Это вопрос уже к про). Даже не знаю, как его сформулировать. Когда вы поняли, что поняли указатели, и знаете, как и, где их использовать? Сколько по времени заняло это? Вот у меня дана функция: char *step(char *p, char *&out){ int n=0; char *q; ...
C++ Передать двумерный массив в функцию подскажи те как передать двумерный массив в функцию?) подробнее

Показать сообщение отдельно
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
                     }
               }
          }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru