вання рядка
pDC-> TextOut (10,140, ​​str) ;//вивід рядка на екран
}
}
}
/////////////////////////////////////////////////////////////////////////////
// CSortView diagnostics
# ifdef _DEBUG
void CSortView :: AssertValid () const
{
CView :: AssertValid ();
}
void CSortView :: Dump (CDumpContext & dc) const
{
CView :: Dump (dc);
}
CSortDoc * CSortView :: GetDocument ()// non-debug version is inline
{
ASSERT (m_pDocument-> IsKindOf (RUNTIME_CLASS (CSortDoc)));
return (CSortDoc *) m_pDocument;
}
# endif// _DEBUG
/////////////////////////////////////////////////////////////////////////////
// CSortView message handlers
// при виборі сортування Quicksort
void CSortView :: OnQuick ()
{
// оголошення локальних змінних
sort = true;
metod = 1;
int i;
count = 0;
for (i = 0; i
{
mas2 [i] = mas [i];
}
В
quicksort (0, kol-1) ;//виклик функції quicksort
Invalidate (true) ;//перемальовування вмісту вікна
}
// при виборі сортування Shell
void CSortView :: OnShell ()
{
// оголошення локальних змінних
sort = true;
metod = 2;
int ii, t = 5, i, j, k, s, m, h [6], x;
count = 0;
for (ii = 0; ii
{
mas2 [ii] = mas [ii];
}
В
h [1] = 9; h [2] = 5; h [3] = 3; h [4] = 2; h [5] = 1;
В
////////////////////////////////////////////
// АЛГОРИТМ
for (m = 1; m <= t; m + +)
{
k = h [m];
s =-k;
for (i = k +1; i <= kol; i + +)
{
x = mas2 [i];
j = ik;
В
while (x
{
mas2 [j + k] = mas2 [j];
j = jk;
}
В
mas2 [j + k] = x;
count + +;
}
}
x = mas2 [0];
mas2 [0] = mas2 [1];
mas2 [1] = x;
////////////////////////////////////////////
В
Invalidate (true) ;//перемальовування вмісту вікна
}
// при виборі сортування Bubble
void CSortView :: OnPuzirok ()
{
// оголошення локальних змінних
int dop;
bool end;
count = 0;
sort = true;
metod = 3;
int i, j;
for (i = 0; i
{
mas2 [i] = mas [i];
}
////////////////////////////////////////////
// АЛГОРИТМ
for (i = 0; i
{
end = true;
for (j = i +1; j
{
if (mas2 [i]> mas2 [j])
{
dop = mas2 [i];
mas2 [i] = mas2 [j];
mas2 [j] = dop;
end = false;
count + +;
}
}
if (end == true) break;
}
///////////////////////////////////////////// p>
Invalidate (true) ;//перемальовування вмісту вікна
}
// функція швидкого пошуку
void CSortView :: quicksort (int l, int r)
{
int i, j;
i = l; j = r;
{
part (l, r, i, j);
if (i
if (j> l) quicksort (l, j) ;//перехід до сортування правою частини
}
}
// функція пошуку по частинах
void CSortView :: part (int l, int r, int & i, int & j)
{
int x, dop;
В
i = l;
j = r;
x = (l + r)/2;
В
do
{
while (mas2 [i]
i + +;
while (mas2 [j]> mas2 [x])
j -;
if (i <= j)
{
dop = mas2 [i];
mas2 [i] = mas2 [j];
mas2 [j] = dop;
В
i + +; j -; count + +;
}
}
while (i
}
Література
1. Петзольд Ч. Програмування під Windows 95. У двох книгах: BHV - Санкт - Петербург, 1997, silt. p> 2. Річард С.Лінкер, Том Арчер. Програмування для Windows 98. Біблія розробника. "Діалектика" - Москва, 1999.-864 с.: Іл. - Парал. тит. англ. Уч.пос. p> 3. Джесс Ліберті. С + + за 21 день. "Вільямс" - Москва, 2000.-816 с.: Іл. - Парал.тіт. англ.
4. Девід Дж. Круглінскі. Основи С + +. "Російська редакція" - Москва, 1997. - 696 с.: іл.
5. Кейт Грегорі. Використання Visual C + +. "Вільямс" - Москва, 1999.-864 с.: іл .. - Парал.тіт. англ., уч. сел.
7. Конспект лекцій.