Вычислить среднее арифметическое всех элементов массива (пока задал статическое m=3) и относительно этого значения разбить массив на две части (с использованием вспомогательных массивов). у меня программка находит середину медианы и меняет стороны наоборот. (например 12345 => 45123) Как сделать, чтоб нормально сортировало?
| Код | #include <stdio.h> #include <iostream.h>
void sort(int A[], int a, int b) { int i,m=3,j,k; //m=3 - статическая медиана. (на 1-е время) int B[5]; a=0,b=4; for (i=a, j=a,k=b; i<=b; i++) if (A[i]<=m) B[j++]=A[i]; else B[k--]=A[i]; for (i=a; i<=b; i++) A[i]=B[i];
if (A[i] > A[j]) { int c; c = A[i]; A[i] = A[j]; A[j]=c; } }
void main() { int i, A[5]={5,4,2,3,1},a,b; //sort(B, a, b); sort(A,a,i-1); sort(A,i+1,b); for (i=0; i<5;i++) cout << A[i]; }
|
|