| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Быстрая сортировка на Си quicksort |
| Автор: Dididid 24.5.2020, 11:17 |
| Здравствуйте, нужно сделать быструю сортировку положительных четных элементов массива, а отрицательные и нечетные проигнорировать было: 0 -3 4 2 -6 стало: 0 -3 2 4 -6 Я написала такую программу, но она не работает, что нужно исправить? int sort(int *B, int k) { if (k < 2) return k; int p,vv,i,j,n; n=k/2; if (B[n]!=0 || B[n]%2!=0) { while (B[n]<=0 || B[n]%2!=0) { n++; } } p=B[n]; for (i = 0, j = k - 1; ; i++, j--) { while (B[j] >= p && B[j] > 0 && B[j]%2==0) { j--; } while (B[i] <= p && B[i]>0 && B[i]%2==0 ) { i++; } if (i >= j) break; else { vv = B[i]; B[i] = B[j]; B[j] = vv; } } if ( j > 0 ) sort(B, i); if ( k > i ) sort(B + i, k - i); return 1; } |
| Автор: Oldshelf 25.5.2020, 16:03 | ||||
|