отсортировать массив методом вставок и сортировкой шелла.сравнить кол-во сравнений и присваиваний. #include #include #include void Random(int arr[], unsigned len) { srand(time(0)); unsigned i; for (i = 0; i < len; ++i) { arr[i] = rand() % (2*len); } } void Print(int arr[], unsigned len) { unsigned i; for (i = 0; i < len; ++i) { printf("%3d", arr[i]); } printf("\n") ; } void vstavki(int arr[],unsigned int len) { int v,i,j,q=0,z=0; for(i=0;i q=0,z=0; for (i=1;i { v=arr[i]; q=q+1; for (j=i-1;j>=0 && (arr[j] > v);j--,z++,q++) arr[j+1]=arr[j]; arr[j+1]=v; z=z+2; } } int shell(int * arr, int len) { int i,k,j,h,x,hh,s=0,p=0; h=len/2; do { do { hh=0; for(i=0;i { if(arr[i]>arr[i+h]) { x=arr[i]; arr[i]=arr[i+h]; arr[i+h]=x; hh=1; s++; p=p+3; }//if }//i }while(hh==1);//do2 h=h/2; }while(h>0);//do1 } int main(int argc, char **argv) { int s=1; int arr[20]; unsigned len = sizeof(arr)/sizeof(*arr); Random(arr, len); printf("array:"); Print(arr, len); shell(arr, len); printf(" \n "); printf("\nsorted:"); Print(arr, len); printf("\nsravneniy:"); printf("%d",shell); printf("\nvstavki:"); vstavki(arr, len); Print(arr,len); system("pause"); return 0; } нужно переменную "s" и "p" из int shell вывести в main.