Другие языки программирования и технологии

Нужно написать программу на языке С

Вот программа, обеспечивающая именно требуемое и работающая заметно быстрее полных сортировок:


double M[N];
int n, k = N;
//...
for ( n=0; n < k; ){
  if ( M[n] < 0 )
    ++n;
  else {
   --k;
    if ( M[k] < 0 ){
      double T = M[n]; M[n] = M[k]; M[k] = T;
    }
  }
}
Караванский Виталий
Караванский Виталий
79 819
Лучший ответ
т. е. после сортировки элементы одного знака должны занимать те же позиции в массиве?

допустим было вот так:

6 -2 4 -3 5 -8

отсортировали и стало вот так:

4 -8 5 -3 6 -2

или нифига подобного и должно получиться вот так:

-8 -3 -2 4 5 6

и в чём проблема?
Гений @
Гений @
70 085
int main(){
int aaa[15], ii, kk, ssign, bbb;
// заполним массив aaa
ssign = 1;
for( ii = 0; ii < 15; ii++) {
aaa[ii]=ii*ssign;
printf("%d ", aaa[ii]);
ssign = -ssign;
}
printf("\n");
// переместим отрицательные к началу массива
for( ii = 0; ii < 15; ii++) {
if(aaa[ii]>0) {
bbb = aaa[ii];
for(kk=ii;kk<15;kk++) {
if(aaa[kk]<0){
aaa[ii]=aaa[kk]; // тут и меняем
aaa[kk]=bbb;
break;
}
}
if (kk==15){
break; // отрицательные элементы закончились)) )
}
}
}
// распечатаем результат
for( ii = 0; ii < 15; ii++) {
printf("%d ", aaa[ii]);
}
return 0;
}

а вот результат работы:
result: Success time: 0s memory: 1720 kB returned value: 0

input: no

output:

0 -1 2 -3 4 -5 6 -7 8 -9 10 -11 12 -13 14
0 -1 -3 -5 -7 -9 -11 -13 8 2 10 6 12 4 14
Андрей Жубрин
Андрей Жубрин
71 435
че сложного? пузырьком!
Владимир Жуков
Владимир Жуков
10 078
Тебе здесь код писать что ли?

Похожие вопросы