. a1,...,an. , : 1 ≤ a2 ≤... ≤an : 1 ≥ a2 ≥... ≥an. , . , .. . , . , .
()
. . . , .
"" ( ) "" () , (.37). , , .
0 15 8 10 19 20 6 16 5 19
1: 0 15 8 10 19 20 6 5 16 19
1: 0 15 8 10 19 20 5 6 16 19
1: 0 15 8 10 19 5 20 6 16 19
1: 0 15 8 10 5 19 20 6 16 19
1: 0 15 8 5 10 19 20 6 16 19
1: 0 15 5 8 10 19 20 6 16 19
1: 0 5 15 8 10 19 20 6 16 19
2: 0 5 15 8 10 19 6 20 16 19
2: 0 5 15 8 10 6 19 20 16 19
2: 0 5 15 8 6 10 19 20 16 19
2: 0 5 15 6 8 10 19 20 16 19
2: 0 5 6 15 8 10 19 20 16 19
3: 0 5 6 15 8 10 19 16 20 19
3: 0 5 6 15 8 10 16 19 20 19
3: 0 5 6 8 15 10 16 19 20 19
4: 0 5 6 8 15 10 16 19 19 20
4: 0 5 6 8 10 15 16 19 19 20
0 5 6 8 10 15 16 19 19 20
. 37.
, . , .
// ()
void SortBubble (int count, int* pArr)
{
int trash = 0;
for (int i = 0; i < count; i++) // i -
{
for (int j=0; j < count-i-1; j++) //
{
if (pArr[j] > pArr[j+1]) // "" ""
{
trash = pArr[j]; //
pArr[j] = pArr[j+1];
pArr[j+1] = trash;
}
}
}
}
, . : , , , , .. , . i- a[i]... a[n] a[i]. .38.
|
|
16 6 6 20 2 19 13 6 3 3
1: 2 6 6 20 16 19 13 6 3 3
2: 2 3 6 20 16 19 13 6 6 3
3: 2 3 3 20 16 19 13 6 6 6
4: 2 3 3 6 16 19 13 20 6 6
5: 2 3 3 6 6 19 13 20 16 6
6: 2 3 3 6 6 6 13 20 16 19
7: 2 3 3 6 6 6 13 20 16 19
8: 2 3 3 6 6 6 13 16 20 19
9: 2 3 3 6 6 6 13 16 19 20
10: 2 3 3 6 6 6 13 16 19 20
2 3 3 6 6 6 13 16 19 20
. 38.
i, a[0]...a[i] . , (n-1)- , a[n] , a[n] : .
//
void SortSelect(int count, int* pArr)
{
int i1,temp;
int jmax;
for (int i = count - 1; i > 0; i--) // i -
{
jmax = 0;
for (int j = 0; j <= i; j++)
{
if (pArr [jmax] < pArr [j]) i1 = j;
}
temp = pArr [i1];
pArr [i1] = pArr [i];
pArr [i] = temp;
}}
a[i] a[1],...,a[i-1]. a[i] a[1],...,a[i-1]. "" .
, i- a[1]...a[i-1] . : a[1]...a[i-1] . (. ) .
i- . , : a[1]...a[i-1] a[i]...a[n].
, i- a[i] . , . ( ), (.39).
, "" X , ,
|
|
1. H , X.
2. .
2: 12 16 10 9 10 9 9 11 10 11
3: 10 12 16 9 10 9 9 11 10 11
4: 9 10 12 16 10 9 9 11 10 11
5: 9 10 10 12 16 9 9 11 10 11
6: 9 9 10 10 12 16 9 11 10 11
7: 9 9 9 10 10 12 16 11 10 11
8: 9 9 9 10 10 11 12 16 10 11
9: 9 9 9 10 10 10 11 12 16 11
10: 9 9 9 10 10 10 11 11 12 16
9 9 9 10 10 10 11 11 12 16
. 39.
//
void SortInsert (int count, int* pArr)
{
int temp, j;
for (int i = 1; i < n; i++) // , i -
{
temp = pArr[i];
j = i-1; //
while (j >= 0 && pArr[j] > temp)
{
pArr[j+1] = pArr[j]; // ,
--j;
}
// ,
pArr[j+1] = temp;
}
}
. () , , .
. , . : . , . () .
. , , , , , .. .