Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
InfOlimp_7-lab.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
188.93 Кб
Скачать

Сұрыптау есептерінің ішінде массив элементтерінің бір бөлігін өсу ретімен және екінші бөлігін кему ретімен сұрыптау қажеттілігі жиі кездеседі.

5-мысал. Массив бөліктерін сұрыптау керек. Оң және теріс элементтері бар А массиві берілсін делік (4.2-сурет). Массивтің оң элементтері өсу реті бойынша сұрыпталып, ал теріс элементтерін өз орнында қалдыру керек.

Сурет 4.2

Есепті шешу идеясы:

  • Қосымша В массивін енгіземіз және оған А массивіндегі оң элементтерді жазамыз (4.3-сурет):

1

2

3

4

5

В

2

5

7

8

9

Сурет 4.3

Содан соң массивті өңдеудің типтік алгоритімін қолдану арқылы, A массивінің элементтерінің индексі ретінде В массивінің элементтерін қолданамыз. Бұл есептің шығарылуын бөлек типтік алгоритм ретінде қарастыруға болады.

const m=10;

var a, b: array [1..m] of integer;

i, j, n, x, k: integer;

begin

writeln('Элементтер саны:');

readln(n);

for i:=1 to n do

begin write('a[',i,']='); readln(a[i]); end;

j:=1; k:=0;

for i:=1 to n do

if a[i]>0 then

begin

b[j]:=i;

j:=j+1;

k:=k+1;

end;

for j:=k downto 2 do

for i:=1 to j-1 do

if a[b[i]]>a[b[i+1]] then

begin

x:=a[b[i]];

a[b[i]]:=a[b[i+1]];

a[b[i+1]]:=x;

end;

for i:=1 to n do

write (a[i],' ');

end.

Тест:

Берілгені:

N=9

-3, 5, -1, 3, 6, -8, 2, -1, -3

Нәтижесі:

-3, 2, -1, 3, 5, -8, 6, -1, -3

Қорытынды

  • Біртекті массивтерді сұрыптаудың «Көбікті» әдісі екі көрші элементті салыстыруға негізделген: егер үлкен элемен кішісінің сол жағында болса, онда элементтердің орындары ауыстырылады. Массив элементінің ең үлкені массивтің ең соңына орналасады. Әрі қарай алгоритм бірінші элементтен соңғы элементке дейін қайталанады.

  • Массивтің бөліктерін сұрыптауда (Сұрыптаудың шарттары бойынша массив бөліктерін таңдаймыз) сұрыпталатын индекстер ретінде А массивіндегі элементтерді және қосымша В массивіндегі элементтерді аламыз ( онда таңдалатын массивтің бастапқы элементтері сақталады).

Сұрақтар.

  • «Көбікті» сұрыптаудың бірінші қадамында не болады?

  • «Көбікті» сұрыптау әдісіндегі ішкі циклдың санауын сыртқы циклдың санауына тәуелділігін анықтаңдар?

Тапсырмалар

  • Символды жол сандардан және латын әріптерінен тұрады. Олардың әрқайсысы өз орнында қалатындай етіп сандарды кему реті бойынша, әріптерді алфавиттік тәртіп бойынша реттеу керек.

  • Натурал сандардан тұратын массив берілген, ондағы жай сандарды өсу ретімен, ал құрама сандарды кему ретімен сұрыптау керек.

  • Сөйлемдегі дауысты дыбыстарды алфавит тәртіппен өсу реті бойынша, ал дауыссыз дыбыстарды кему реті бойынша орналастыру керек.

  • Сөйлемдегі сөздердің орнын алфавиттік тәртіппен (әрбір сөздегі бірінші әріп бойынша) орналастыру қажет.

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]