.


:




:

































 

 

 

 


( )




.. , .

, .

. , .

. . 1. , . . , N , N-1 .

, . . , . , , 27 , 28- .

 

/* array - () */

/* count - () */

/* size - */

void sort(int *array, int *count, int size)

{

register int i, j;

for(i = 0; i < size; i++)

count[i] = 0;

for(i = 0; i < size - 1; i++)

{

for(j = i + 1; j < size; j++)

{

if(array[i] < array[j])

count[j]++;

else

count[i]++;

}

}

return;

}

 

.

a[0].. a[15].

1. 8 2- (a[0], a[8[), (a[1],a[9]),..., (a[7], a[15]).

2. 4 (a[0], a[4], a[8], a[12]),..., (a[3], a[7], a[11], a[15]).

4, 12, 13, 18, - 3, 5, 8, 9 ..

3. 2 8 , (a[0], a[2], a[4], a[6], a[8], a[10], a[12], a[14]).

4.

 

void Shella(int *a,int n)

{

int h, i, t;


int k; // p p

h=n / 2; // p

while (h>0)

{ // y p 1

// yp pp p h

k=1;

while (k)

{

// , p

k=0;

for (i=0; i< n-h;i++)

{ //p - p h }

if (a[i]>a[i+h])

{

t=a[i]; a[i]=a[i+h]; a[i+h]=t;

k=1; // p p

}

}

}

h=h / 2; //{ y p } } }

 

.

, . . , : . , , , .

1. .

2. , . , ; - , . ( , , .)

3. , 4, - 1.

4. , - .

 

 

int BinarySearch(int a[],i, j, int x)

{

int, middle;

while (i <= j)

{

middle = (i + j)/2;

if (x == a[middle])

return middle;

else

if (x > a[middle])

i = middle + 1;


else
j = middle - 1;

}

return -1;

}

 

#include <stdio.h>

#include <stdlib.h>

void merge(int a[], int lb, int split, int ub)

{

int pos1=lb;

int pos2=split+1;

int pos3=0;

int *temp =(int*)malloc((ub-lb+1)*sizeof(int));

 

while (pos1<=split && pos2<=ub)

{

if (a[pos1]<a[pos2])

temp[pos3++]=a[pos1++];

else

temp[pos3++]=a[pos2++];

}

while (pos2<=ub)

temp[pos3++]=a[pos2++];

while (pos1<=split)

temp[pos3++]=a[pos1++];

for (pos3=0; pos3<ub-lb+1; pos3++)

a[lb+pos3]=temp[pos3];

free(temp);

}

 

 

void mergsort(int a[], int lb, int ub)

{

int split;

if (lb<ub)

{

split = (lb + ub)/2;

mergsort(a, lb, split);

mergsort(a, split+1, ub);

merge(a, lb, split, ub);

}

}

void main()

{

int c[5];

 

for (int i=0;i<5; i++)

scanf("%d", &c[i]);

mergsort(c, 0, 4);

for (int i=0;i<5; i++)

printf("%d ", c[i]);

}

 





:


: 2016-07-29; !; : 1950 |


:

:

, , .
==> ...

1786 - | 1682 -


© 2015-2024 lektsii.org - -

: 0.016 .