Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ измените порядок следования элементов в массиве так,чтобы... http://www.cyberforum.ru/cpp-beginners/thread627520.html
помогите решать решение измените порядок следования элементов в массиве так,чтобы располагались все отрисательные элементы,затем положительные,а потом нули
C++ Открыть директорию Всем доброго времени суток. Подскажите пожалуйста функцию для того чтобы прочитать директорию. Т.е есть папка и мне нужно получить все названия вложений(файлов и папок).Я использую VS2010 компилятор... http://www.cyberforum.ru/cpp-beginners/thread627519.html
Сохранение данных хэш таблицы C++
Здравствуйте. Имеется хеш таблица с размером массива 10 000. В таблицу периодически заносятся данные. Как сохранять данные при выходе из программы, чтобы потом при включении программы они находились...
Конструктор и деструктор в классе C++
Решил разобраться в конструкторах и деструкторах. Написал, вроде по такой же структуре как и в учебнике. А комп выдает ошибки в компиляции, связанные с типом главной функции. Что не так,...
C++ Массив карт http://www.cyberforum.ru/cpp-beginners/thread627469.html
Нужно ввести поток карт, для дальнейшей сортировки. Карта представлена как два символа - (вес) + (масть). Вводится сразу два символа, без пробелов. Дальше идет следующая карта через пробел....
C++ функция работает неверно #include <iostream> using namespace std; int zamena(char*, char, char); int main() { char str; cout<<"Enter string: "; cin.getline(str, 20); cout<<"\nenter the two characters... подробнее
Thinker
Эксперт С++
4234 / 2208 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
23.07.2012, 20:34 0

Изменить порядок следования элементов в массиве

23.07.2012, 20:34. Просмотров 2167. Ответов 9
Метки (Все метки)

Ответ

Ну зачем сортировки, лучший алгоритм неспециализированной сортировки имеет сложность http://www.cyberforum.ru/cgi-bin/latex.cgi?O(\sqrt{n}). А это настолько банальная задача, которая менее чем за 2 прохождения решается.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
int main()
{
   int buf, a[] = {1, 2, 0, -2, 0, 3, 0, -3};
   int i, j, n = sizeof(a)/sizeof (*a);
   i = 0;
   j = n - 1;
   while (i < j)
   {
       while (i < j && a[i] < 0)
          i++;
       while (i < j && a[j] >= 0)
          j--;
       if(i < j)
       {
            buf = a[i]; a[i] = a[j]; a[j] = buf;
            i++;
            j--;
       }
   }
   j = n - 1;
   while (i < j)
   {
       while (i < j && a[i] > 0)
          i++;
       while (i < j && a[j] == 0)
          j--;
       if(i < j)
       {
            buf = a[i]; a[i] = a[j]; a[j] = buf;
            i++;
            j--;
       }
   }
   for (i = 0; i < n; i++)
      printf("%d ", a[i]);
   return 0;
}


Вернуться к обсуждению:
Изменить порядок следования элементов в массиве
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.07.2012, 20:34

Изменить порядок следования элементов массива
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)...

Изменить порядок следования элементов массива на противоположный
Измените порядок следования элементов массива на противоположный.

Изменить порядок следования элементов массива на обратный
Привет всем! Нужна помощь по решению задачи на языке С++. Принципиально я знаю...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru