3 / 3 / 3
Регистрация: 23.06.2015
Сообщений: 38
1

Сортировка массива: сначала расположить положительные, а потом - отрицательные элементы

29.07.2016, 17:50. Показов 2782. Ответов 7
Метки нет (Все метки)

Проверьте пожайлуста мое решение . Эффективен ли вообще такой подход?

Задание:
Преобразовать массив , так чтобы сначала располагались положительные эл-ты а потом отрицательные. (0-считать положительным)

Мое решение:
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
#include <iostream>
 
using namespace std;
 
 
int main()
{
const int n =5;
int mas[n] = {2,4,-1,0,-5};
int mas_dubl[n];
int i_m = 0,i_p = 0;
//
for(int i=0;i<n;i++) {
    if(mas[i]<0) {
        mas_dubl[n-1-i_m] = mas[i];
        i_m++;
    }
    else {
        mas_dubl[i_p] = mas[i];
        i_p++;
    }
}
// Вывод массива
cout<<"#################################################################################"<<endl;
for(int i=0;i<n;i++) {
    cout<<"Mas element"<<mas_dubl[i]<<endl;
}
 
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2016, 17:50
Ответы с готовыми решениями:

Расположить элементы массива так, чтобы сначала были отрицательные и нули, а потом положительные
Дан массив из 12 элементов. Расположить элементы так,чтобы сначала были отрицательные и нули,а...

Расположить элементы одномерного массива в следующем порядке: сначала отрицательные, затем нули, потом положительные
Расположить элементы одномерного массива в следующем порядке: сначала отрицательные, затем нули,...

Сортировка массива: сначала положительные элементы, потом - отрицательные
Сделать динамическаий массив ,указатели си++ Балансовый отчет содержит N позиций.Распечатать...

В массиве сначала расположить все положительные элементы,а потом отрицательные
1.В одномерному массиве,что состоит из N целых элементов вычислить: 1)добавление элементов...

7
-19 / 1 / 0
Регистрация: 28.07.2016
Сообщений: 41
29.07.2016, 17:56 2
Очень эффективно
0
3 / 3 / 3
Регистрация: 23.06.2015
Сообщений: 38
29.07.2016, 18:08  [ТС] 3
TheBig , это сарказм? Просто я новичок
0
-19 / 1 / 0
Регистрация: 28.07.2016
Сообщений: 41
29.07.2016, 18:12 4
это результаты многодневных тестов данной программы. тесты показали высокую эффективность
0
4 / 3 / 3
Регистрация: 17.07.2016
Сообщений: 17
29.07.2016, 19:50 5
интересно, что тут подразумевается под эффективностью))
0
18 / 18 / 3
Регистрация: 16.09.2013
Сообщений: 126
29.07.2016, 20:33 6
собственно ты выполнил задачу, а по поводу эффективности это снобы выеживаются . Можно сделать и по другому, но это вполне для новичка (это лаба по предмету же). Если учесть что это лабараторка то вполне, но например, если в реальной задаче применять то это не совсем правильно, и то если работаешь с огромным количеством элементов, или выполняешь данную процедуру многократно (очень много), а так вполне. И еще эффективен слово опасное (необходимо давать критерий эффективности) потому что если у тебя памяти не хватает то нет, а если хватает памяти то вполне.

Добавлено через 13 минут
Да эффективность надо пояснить, я написал 2 варианта но блин в 5 мин не уложился, повторять не охото поэтому в кратце: 1) смотрим по два эл если они не один из них не на своем месте меняем, если оба смотрим след и меняем с первым пол, если на своем то оставляем. 2) Рекурсивно с конца в той же манере.
А вообще программировать легко вот для решения такой задачи: вырежи себе + числа и - числа ну и попробуй вручную сделать и запиши на с++.
0
125 / 125 / 44
Регистрация: 05.10.2013
Сообщений: 462
29.07.2016, 20:41 7
sham63, если бы без расхода дополнительной памяти (что можно легко сделать), то было бы еще лучше. Тем более у вас в задании написано "преобразовать", т. е. изменить массив, который вам дан.
0
3 / 3 / 3
Регистрация: 23.06.2015
Сообщений: 38
30.07.2016, 16:35  [ТС] 8
Спасибо за ответы!
Это не лабы , просто Тренируюсь решая задачки из Интернета.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2016, 16:35
Помогаю со студенческими работами здесь

Расположить в массиве сначала все отрицательные элементы и нули, потом - положительные (Pascal -> C++)
Помогите пожалуйста, нужно перевести программу с pascal на С++. Есть два вида кода: const...

Преобразовать массив: сначала расположить все отрицательные элементы, а потом - все положительные
ЧЕРЕЗ ФУНКЦИЮ! Преобразовать одномерный целочисленный массив таким образом, чтобы сначала...

Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z
Расположить в массиве R сначала положите ,а затем отрицательные элементы массива Z. матрица...

Нужно поместить сначала положительные элементы массива Z в массив R, потом отрицательные
Здравствуйте. Такое задание: &quot;Нужно поместить сначала положительные элементы массива Z в массив R,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru