Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка методом "пузырька" / 6 сообщений из 6, страница 1 из 1
20.11.2012, 15:28
    #38045503
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка методом "пузырька"
Подскажите пожалуйста как при сортировки сохранить индексы
например дан масс
Код: pascal
1.
2.
3.
4.
5.
a[1]=7;
a[2]=6;
a[3]=5;
a[4]=4;
a[5]=3;


после сортировки
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
n:=5
for i:=1 to n-1 do 
    for j:=i+1 to n do {В этой строке начинающие программисты чаcто допускают ошибку}
      if a[i]>a[j] then 
        begin
          buf:=a[i]; 
          a[i]:=a[j]; 
          a[j]:=buf;
        end;


получаем массив
Код: pascal
1.
2.
3.
4.
5.
a[1]=3;
a[2]=4;
a[3]=5;
a[4]=6;
a[5]=7;


Как сохранить "вывести" индексы которые были до сортировки например сохранив их в массив С[i] получив что то типа
Код: pascal
1.
2.
3.
4.
5.
элемент=3 номер=5;
элемент=4 номер=4;
элемент=5 номер=3;
элемент=6 номер=2;
элемент=7 номер=1;


Спасибо
...
Рейтинг: 0 / 0
20.11.2012, 15:46
    #38045542
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка методом "пузырька"
Cjhnbhjdfnm параллельно ещё один массив - изначально заполненный по порядку. Или преобразовать массив в двумерный. Или... да вариантов-то масса.
...
Рейтинг: 0 / 0
20.11.2012, 15:46
    #38045544
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка методом "пузырька"
Chek_FedorПодскажите пожалуйста как при сортировки сохранить индексы
например дан масс
Код: pascal
1.
2.
3.
4.
5.
a[1]=7;
a[2]=6;
a[3]=5;
a[4]=4;
a[5]=3;


после сортировки
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
n:=5
for i:=1 to n-1 do 
    for j:=i+1 to n do {В этой строке начинающие программисты чаcто допускают ошибку}
      if a[i]>a[j] then 
        begin
          buf:=a[i]; 
          a[i]:=a[j]; 
          a[j]:=buf;
        end;


получаем массив
Код: pascal
1.
2.
3.
4.
5.
a[1]=3;
a[2]=4;
a[3]=5;
a[4]=6;
a[5]=7;


Как сохранить "вывести" индексы которые были до сортировки например сохранив их в массив С[i] получив что то типа
Код: pascal
1.
2.
3.
4.
5.
элемент=3 номер=5;
элемент=4 номер=4;
элемент=5 номер=3;
элемент=6 номер=2;
элемент=7 номер=1;


Спасибо

1. Создать второй массив b
2. Присвоить b[1]=1 b[2]=2 ...
3. В процессе сортировки, когда меняете a[i]<->a[j] менять и b[i]<->b[j]

Либо использовать записи.
...
Рейтинг: 0 / 0
20.11.2012, 16:43
    #38045684
AlexandrPlus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка методом "пузырька"
яснее с record вроде
Код: pascal
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.
type para =    record
                   val: integer;
                   num: integer;
                   end;
...
a: array[1..10] of para;
... 
a[1].val:=7;
a[2].val:=6;
a[3].val:=5;
a[4].val:=4;
a[5].val:=3;
a[1].num:=7;
a[2].num:=6;
a[3].num:=5;
a[4].num:=4;
a[5].num:=3;
n:=5;
for i:=1 to n-1 do
    for j:=i+1 to n do
      if a[i].val>a[j].val then
        begin
          buf:=a[i].val;
          a[i].val:=a[j].val;
          a[j].val:=buf;
        end;

memo1.Clear;
i:=1;
while i<6
 do
 begin
 memo1.Lines.Add(' '+inttostr(i)+' '+inttostr(a[i].num));
 i:=i+1;
 end;
...
Рейтинг: 0 / 0
20.11.2012, 17:17
    #38045748
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка методом "пузырька"
Спасибо. Это Паскаль
...
Рейтинг: 0 / 0
21.11.2012, 18:01
    #38047538
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка методом "пузырька"
голосую за использование record (запись).
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка методом "пузырька" / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]