int* LastToFirst (int array[], int size, int what, int where, int from);
int Find (int array [], int s, int size);
int* Make_1 (int array[], int size);
int* Make_2 (int array[], int size);
int* Make_3 (int array[], int size);
int Change (int array [], int left, int right, int x);
void Sort (int array[], int left, int right);
int* Change_1 (int array [], int size, int x);
i = 0;
while (i < 10)
{
printf ("%d, ", array6 [i]);
i ++;
}
printf ("\n");
return 0;
}
int Find (int array [], int s, int size)
{
int n = 0;
int k = size - 1;
int r = 0;
int m = 0;
while (n < k)
{
m = (k + n) / 2;
// printf ("nacalo = %d, konec = %d\n", n, k);
if (array [m] == s)
{
r = m;
break;
}
if (array [m] > s) k = m - 1;
else n = m + 1;
}
return r;
}
int* Make_1 (int array[], int size) //srtirovka viborom
{
int i = 0;
int j = 0;
int n = 0;
int z = 0;
while (j < size - 1)
{
z = array [j];
i = 0;
while ((i + j) < size)
{
if (array [i + j] < z)
{
z = array [i + j];
n = i + j;
}
i ++;
}
if (z != array [j])
{
array [n] = array [j];
array [j] = z;
}
j ++;
}
return array;
}
int* Make_2 (int array[], int size) //sortirovka vstavkami posledovatelnaja
{
int j = 1;
int i = 0;
int z = 0;
/* int t = 0;
while (t < 10)
{
printf ("%d, ", array [t]);
t ++;
}
printf ("\n");*/
while (j < size)
{
z = array [j];
i = 0;
while (i < j)
{
if (array [i] > z)
{
LastToFirst (array, j + 1, array [j], i, i);
break;
}
i ++;
}
// printf ("j = %d\n", j);
/* t = 0;
while (t < 10)
{
printf ("%d, ", array [t]);
t ++;
}
printf ("\n");*/
j ++;
}
return array;
}
int* Make_3 (int array[], int size) //sortirovka vstavkami dvoichnaja
{
int j = 1;
int z = 0;
while (j < size)
{
z = array [j];
int n = 0;
int k = j - 1;
while (n <= k)
{
int m = (k + n) / 2;
if (array [m] == z) break;
if (array [m] > z) k = m - 1;
else n = m + 1;
}