Форум программистов, компьютерный форум CyberForum.ru

Сортировка и поиск - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
11.12.2009, 19:00     Сортировка и поиск #1
Доброго всем времени суток, прошу помочь Вас решить мне простенькую задачку, у меня она чёт то не получается. Вот её условие: "Найти в отсортированном в порядке возрастания элементов массив. Вставить в этот массив новый элемент, не нарушая сортировки.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2009, 19:00     Сортировка и поиск
Посмотрите здесь:

C++ массив (сортировка и поиск элемента)
Сортировка и поиск... C++
C++ stl сортировка,поиск
и снова массивы (поиск, сортировка) C++
C++ сортировка и поиск
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
12.12.2009, 09:06  [ТС]     Сортировка и поиск #2
Я считаю, что необходимо отсортировать массив чисел за возрастанием, и вставить в него новое число так, что бы оно тоже было отсортировано в этом массиве. Только я пока не понимаю как это сделать.
odip
Эксперт C++
 Аватар для odip
7224 / 3286 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
12.12.2009, 19:56     Сортировка и поиск #3
1) Найти место куда вставить.
2) Сдвинуть хвост массива на 1 позицию
3) Записать новый элемент
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
12.12.2009, 20:23  [ТС]     Сортировка и поиск #4
Я это понимаю, и спрашиваю как?
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
12.12.2009, 20:39     Сортировка и поиск #5
C++
1
2
for (int i = n; i > pos; --i) //pos - позиция куда вставлять, n - количество элем масива
    a[n] = a[n-1]
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
12.12.2009, 20:45  [ТС]     Сортировка и поиск #6
можно чуть побольше объяснить. чёт не выходит(
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
13.12.2009, 22:36  [ТС]     Сортировка и поиск #7
отзовитесь. кто-то!!
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
13.12.2009, 23:53     Сортировка и поиск #8
покажите что у вас не выходит
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
15.12.2009, 11:59  [ТС]     Сортировка и поиск #9
Вот что-то написал, а теперь подскажите, как сделать, что б выводить массив чисел в порядке возрастания
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
int main ()
{
     int  n,i;
     double a[100];
 
     
cout<<endl;
cout<<" Vedite i  ";
cin>>n;
cout<<endl;
 for (i=0;i<n;i++) {cout<<"vediite a("<<i<<") ";cin>>a[i];
 a[i]=a[i+1];
 
 }
cout<<endl<<endl;
    
system("Pause");
return 0;
}
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
15.12.2009, 20:42  [ТС]     Сортировка и поиск #10
Скажите чё не так!!
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
15.12.2009, 21:13     Сортировка и поиск #11
C++
1
2
3
4
5
void swap(int &a, int &b) {a += b; b = a - b;}
//int k - надо вставить в возр. послед.
a[n+1] = k;
for (int i = n+1; i > 0; --i)
   (a[i-1] > a[i]) ? swap(a[i],a[i-1]) : break;
BOR1K
 Аватар для BOR1K
14 / 14 / 4
Регистрация: 19.09.2009
Сообщений: 289
15.12.2009, 21:13     Сортировка и поиск #12
ты элементы то сдвигай, сделай еще один цикл, но что-бы он шел с конца и было так типа, i++=i;
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
15.12.2009, 21:24     Сортировка и поиск #13
кто-то знает, так написать прокатит?
C++
1
for (int i = n+1; i > 0; --i, (a[i-1] > a[i]) ? swap(a[i],a[i-1]) : break)
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
15.12.2009, 21:40  [ТС]     Сортировка и поиск #14
outoftime,
Цитата Сообщение от outoftime Посмотреть сообщение
swap
- У меня не понимает эту функцию, не компилирует, я уже раньше это пробовал.


BOR1K,
Цитата Сообщение от BOR1K Посмотреть сообщение
i++=i;
-я не понял, что ты хочешь этим сказать,
Объясни пожалуйста поподробнее, что ты хотел этим сказать.

Добавлено через 15 минут
а как вывести на экран отсортираванный массив чисел, и массив чисел из вставленным числом
PKG
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 3
15.12.2009, 22:32     Сортировка и поиск #15
Помогите пожалуйста. Надо сравнить время сортировки массива. Быстрая, пирамидальная и пузарьковая
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
15.12.2009, 22:47     Сортировка и поиск #16
да, она корявая, вот:
C++
1
void swap(int &a, int &b){b += a; a = b - a; b -= a;}
учтите, что в вашем случае это указатель не на инт а на масив интов, можете, к примеру, передавать только индексы элементов, которые нужно поменять..
PKG
0 / 0 / 0
Регистрация: 15.12.2009
Сообщений: 3
16.12.2009, 00:51     Сортировка и поиск #17
ой, сори, я не в ту тему написал..мне паскаль нужен
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
16.12.2009, 11:32  [ТС]     Сортировка и поиск #18
Я раньше спрашивал, и сейчас спрашиваю, как вывести на экран отсортированный массив чисел из вставленным числом?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
16.12.2009, 14:52     Сортировка и поиск #19
Что это?
C++
1
2
3
4
for (i=0;i<n;i++) {cout<<"vediite a("<<i<<") ";cin>>a[i];
 a[i]=a[i+1];
 
 }
Ввод выглядит так
C++
1
2
for (i=0;i<n;i++) 
    cout<<"vediite a("<<i<<") = ", cin>>a[i];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2009, 21:24     Сортировка и поиск
Еще ссылки по теме:

C++ Поиск и сортировка в текстовом файле
Сортировка и поиск данных в структуре C++
Поиск и сортировка list STL C++

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

Или воспользуйтесь поиском по форуму:
Shevva
 Аватар для Shevva
17 / 17 / 0
Регистрация: 13.09.2009
Сообщений: 140
16.12.2009, 21:24  [ТС]     Сортировка и поиск #20
Да то забыл удалить, перед тем как сюда скопировать, лучше пусть мне кто-то всё-таки поможет её решить(я уже в ней запутался, простая фигня, а в голову не идёт)))))
Yandex
Объявления
16.12.2009, 21:24     Сортировка и поиск
Ответ Создать тему
Опции темы

Текущее время: 16:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru