Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пособие

.pdf
Скачиваний:
66
Добавлен:
22.03.2015
Размер:
1.35 Mб
Скачать

a=b[i];

b[i]=b[imin];

b[imin]=a;

}

10.3 Сортування вставками

Даний метод сортування називається сортування вставками, так як на і-му етапі відбувається «вставка» і-ого елемента a[i] в потрібну позицію серед елементів a[1], a[2], …, a[i-1], що вже впорядковані. Після цієї вставки перші і елементів будуть впорядковані.

Саме таким способом звичайно сортують карти, тримаючи в лівій руці вже впорядковані карти, і взявши правою рукою чергову карту, вставляють її в потрібне місце, порівнюючи її з іншими, проходячи справа наліво (табл. 10.3).

Таблиця 10.3.

Приклад сортування масиву методом сортування вставками

Масив до впоряд-

22

20

-1

-40

88

-75

-22

кування

 

 

 

 

 

 

 

І крок

20

22

-1

-40

88

-75

-22

ІІ крок

-1

20

22

-40

88

-75

-22

ІІІ крок

-40

-1

20

22

88

-75

-22

ІV крок

-40

-1

20

22

88

-75

-22

V крок

-75

-40

-1

20

22

88

-22

VІ крок

-75

-40

-22

-1

20

22

88

Реалізувати сортування масиву вставками можна так:

const int n=20; int b[n];

int i,j,c; /* … */

for (i=1;i<n;i++)

{

c=a[i];

for (j=i-1;j>=0&&a[j]>c;j--) a[j+1]=a[j];

a[j+1]=c;

}

81

10.4 Швидке сортування

Швидке сортування полягає в тому, що множина елементів В{k1, k2, …, kn } перетворюється на множину B1, {k1}, B2, де В1 – підмножина В з елементами, не більшими за k1, а В2 – підмножина В з елементами більшими k1. Причому елемент k1 після розбиття множини В буде перебувати на потрібному місці. Далі до множин B1 і B2 знову застосовують впорядкування швидким сортуванням.

double *quick(double *s,int low,int hi)

{

double cnt,aux; int i,j;

if (hi>low)

{

i=low;

j=hi;

cnt=s[i]; while(i < j)

{

if (s[i+1]<=cnt)

{

s[i]=s[i+1];

s[i+1]=cnt;

i++;

}

else

{

if (s[j]<=cnt)

{

aux=s[j];

s[j]=s[i+1];

s[i+1]=aux;

}

j--;

}

}

quick(s,low,i-1); quick(s,i+1,hi);

}

return(s);

}

82

 

 

11 ІНДИВІДУАЛЬНІ ЗАВДАННЯ ДО П. 8-10

 

 

 

 

Завдання

 

 

1.

1.

В одновимірному масиві, що складається з N дійсних елемен-

 

тів, обчислити: – суму від’ємних елементів масиву; – добуток

 

елементів масиву, що розташовані між максимальним і мініма-

 

льним елементами.

 

 

 

 

2.

Впорядкувати елементи масиву за зростанням.

 

 

3.

Дана

прямокутна

цілочисельна

матриця.

Визначити:

 

– кількість рядків, що не містять жодного нульового елемента;

 

– максимальне із чисел, що зустрічається в заданій матриці бі-

 

льше одного разу.

 

 

 

 

4. Дана дійсна квадратна матриця розмірності N.

 

 

Заповнити матрицю в заштрихованій області оди-

 

 

ницями, в не заштрихованій – нулями.

 

 

2.

1.

В одновимірному масиві, що складається з N дійсних елемен-

 

тів, обчислити: – суму додатних елементів масиву; – добуток

 

елементів масиву, що розташовані між максимальним за моду-

 

лем і мінімальним за модулем елементами.

 

 

2.

Впорядкувати елементи масиву за спаданням.

 

 

3.

Дана прямокутна ціла матриця. Визначити кількість стовп-

 

ців, що не містять жодного нульового елемента.

 

 

4. Дана дійсна квадратна матриця розмірності N.

 

 

Заповнити матрицю в заштрихованій області оди-

 

 

ницями, в не заштрихованій – нулями.

 

 

3.

1.

В одновимірному масиві, що складається з N цілих елементів,

 

обчислити: – добуток елементів масиву з парними номерами;

 

– суму елементів масиву, що розташовані між першим і остан-

 

нім нульовими елементами.

 

 

 

2.

Впорядкувати масив таким чином, щоб спочатку розташову-

 

вались всі додатні елементи, а потім – всі від’ємні (елементи,

 

рівні 0 вважати додатними).

 

 

 

3.

Дана

прямокутна

цілочисельна

матриця.

Визначити:

 

– кількість стовпців, що містять хоча б один нульовий елемент;

 

– номер рядка, в якому знаходиться найдовша серія однакових

 

елементів.

 

 

 

 

 

4. Дана дійсна квадратна матриця розмірності N.

 

 

Заповнити матрицю в заштрихованій області оди-

 

 

ницями, в не заштрихованій – нулями.

 

 

 

 

 

 

 

 

83

4.1. В одновимірному масиві, що складається з N дійсних елементів, обчислити: – суму елементів масиву з непарними елементами; – суму елементів масиву, що розташовані між першим і останнім від’ємними елементами.

2. Переставити перші M елементів у кінець масиву (M вводиться з клавіатури, M<N).

3.Дана прямокутна цілочисельна матриця. Визначити:

добуток елементів в тих рядках, що не містять від’ємних елементів; – максимум серед сум елементів діагоналей, паралельних головній діагоналі матриці.

4. Дана дійсна квадратна матриця розмірності N. Заповнити матрицю в заштрихованій області одиницями, в не заштрихованій – нулями.

5.1. В одновимірному масиві, що складається з N дійсних елементів, обчислити: – максимальний елемент масиву;– суму елементів масиву, що розташовані до останнього додатного елемента. 2. Видалити з масиву всі елементи, модуль яких знаходиться в інтервалі [a,b]. Елементи, що звільняться в кінці масиву заповнити нулями.

3. Дана прямокутна цілочисельна матриця. Визначити: – суму елементів у тих стовпцях, що не містять від’ємних елементів;

мінімум серед сум модулів елементів діагоналей, паралельних побічній діагоналі матриці.

4.Дана дійсна квадратна матриця розмірності N. Заповнити матрицю в заштрихованій області одиницями, в не заштрихованій – нулями.

6.1. В одновимірному масиві, що складається з N дійсних елементів, обчислити: – мінімальний елемент масиву; – суму елементів масиву, що розташовані між першим і останнім додатними елементами.

2.Перетворити масив таким чином, щоб спочатку розташовувались всі елементи, рівні нулю, а потім – решта.

3.Дана прямокутна цілочисельна матриця. Визначити: – суму елементів в тих стовпцях, що містять хоча б один від’ємний елемент; – номера рядків і стовпців всіх сідлових точок матриці

4.Дана дійсна квадратна матриця розмірності N.

Заповнити матрицю в заштрихованій області одиницями, в не заштрихованій – нулями.

84

7.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – номер максимального елемента масиву; – добуток елементів масиву, що розташовані між першим і другим нульовими елементами.

2.Перетворити масив таким чином, щоб в його першій половині розташовувались елементи, що стоять в непарних позиціях, а

вдругій половині – елементи, що стоять в парних позиціях.

3.Для заданої матриці розміру NхN знайти таке k, що k-ий ря-

док матриці співпадає з k-м стовпцем. Знайти суму елементів в тих рядках, що містять хоча б один від’ємний елемент.

4.Дана дійсна квадратна матриця розмірності N. Заповнити матрицю в заштрихованій області одиницями, в не заштрихованій – нулями.

8.1. В одновимірному масиві, що складається з N дійсних елементів, обчислити: – номер мінімального елемента масиву; – суму елементів масиву, що розташовані між першим і другим від’ємними елементами.

2.Перетворити масив таким чином, щоб спочатку розташовувались всі елементи, модуль яких не перевищує 10, а потім – решта.

3.Характеристикою стовпця цілочисельної матриці назвемо суму модулів його від’ємних непарних елементів. Переставляючи стовпці заданої матриці, розташувати їх у відповідності із ростом характеристик.

4.Дана дійсна квадратна матриця розмірності N.

Заповнити матрицю в заштрихованій області одиницями, в не заштрихованій – нулями.

9.1. В одновимірному масиві, що складається з N дійсних елемен-

тів, обчислити: – максимальний за модулем елемент масиву;

– суму елементів масиву, що розташовані між першим і другим додатними елементами.

2.Перетворити масив таким чином, щоб всі елементи, рівні нулю та одиниці, розташовувались після всіх інших.

3.Коефіцієнти системи лінійних рівнянь задані у вигляді прямокутної матриці. За допомогою допустимих перетворень звести матрицю до трикутного вигляду. Знайти кількість рядків, середнє арифметичне елементів яких менше заданої величини.

85

4.Дана дійсна квадратна матриця розмірності N. Заповнити матрицю в заштрихованій області одиницями, в не заштрихованій – нулями.

10.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – мінімальний за модулем елемент масиву; – суму модулів елементів масиву, розташованих після першого елемента, рівного нулю.

2.Перетворити масив таким чином, щоб в першій його половині розташовувались елементи, що стоять на парних позиціях, а в другій половині – елементи, що стоять у непарних позиціях.

3.Здійснити циклічний зсув елементів прямокутної матриці на n елементів вправо або вниз (в залежності від введеного режиму).

4.Дана дійсна квадратна матриця розмірності N.

Заповнити матрицю в заштрихованій області одиницями, в не заштрихованій – нулями.

11.1. В одновимірному масиві, що складається з N дійсних елемен-

тів, обчислити:

– мінімальний

за модулем елемент

масиву;

– суму модулів

елементів, що

розташовані після

першого

від’ємного елемента.

 

 

2.Стиснути масив, видаливши з нього всі елементи, величина яких знаходиться на інтервалі [a,b]. Місце, що звільниться в кінці масиву, заповнити нулями.

3.Дана цілочисельна прямокутна матриця. Визначити номер першого із стовпців, що містять хоча б один нульовий елемент.

4. Отримати квадратну матрицю розмірності N.

1

0

 

.

 

 

.

 

 

.

 

 

.

 

0

1

12.1. В одновимірному масиві, що складається з N дійсних елементів, обчислити: – суму індексів додатних елементів; – суму модулів елементів, що розташовані після першого додатного елемента.

2. Перетворити масив таким чином, щоб спочатку розташовувались всі елементи, ціла частина яких лежить в інтервалі

[a,b], а потім – решта.

3. Впорядкувати рядки цілочисельної прямокутної матриці за зростанням кількості однакових елементів у кожному рядку.

86

Знайти номер першого із стовпців, що не містить жодного

 

від’ємного елемента.

 

 

N.

 

 

 

 

 

 

 

 

 

 

4. Отримати квадратну матрицю розмірності

 

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

0

 

 

 

 

 

 

 

 

 

 

 

 

 

13. 1. В одновимірному масиві, що складається з N дійсних елемен-

 

тів,

обчислити:

– кількість

елементів

масиву,

рівних нулю;

 

– суму елементів масиву, що лежать в діапазоні від А до В.

 

2. Впорядкувати елементи масиву за спаданням модулів елеме-

 

нтів.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Дана ціла прямокутна матриця. Визначити: – кількість ряд-

 

ків, що містять хоча б один нульовий елемент; – номер стовпця,

 

в якому знаходиться найдовша серія однакових елементів.

 

4. Отримати квадратну матрицю розмірності

N.

 

 

 

n

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

 

 

 

 

 

14. 1. В одновимірному масиві, що складається з N дійсних елемен-

 

тів,

обчислити:

– кількість

елементів

масиву,

 

більших C;

 

– добуток елементів масиву, що розташовані після мінімально-

 

го елемента .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Впорядкувати елементи масиву за зростанням модулів еле-

 

ментів.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Дана цілочисельна прямокутна матриця. Визначити: –

 

кількість від’ємних елементів у тих рядках, що містять хоча б

 

один нульовий елемент; – суму модулів елементів, що розта-

 

шовані після першого додатного елемента.

 

 

 

 

 

 

 

 

 

 

 

 

4. Отримати квадратну матрицю розмірності

 

1 2

2 3

0

 

 

 

 

 

 

 

 

 

 

N.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

n (n +1)

 

 

 

15.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – номер елемента масиву, найближчого до середнього арифметичного його значень; – сума елементів масиву, що розташовані між першим від’ємним та другим додатним

87

елементами.

2.Перетворити масив таким чином, щоб в його першій половині розташовувались елементи, що стоять у парних позиціях, а в другій половині – елементи, що стоять у непарних позиціях.

3.Для заданої матриці розміру NхN знайти такі k та n, що сума

елементів k-стовпця матриці збігається з сумою елементів n-го рядка. Знайти суму елементів в тих рядках, що містять хоча б два ненульових елементи.

4. Отримати квадратну матрицю розмірності

 

2

1

0

 

N.

 

1 . .

 

 

 

. . .

 

 

 

 

 

 

 

 

. . .

 

 

 

 

. .

1

 

 

0

1

2

16.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – кількість проміжків монотонності (тобто ділянок, на яких його елементи зростають); – добуток додатних елементів, що стоять на непарних позиціях.

2.Перетворити масив цілих чисел розмірності N, збільшив усі серії на один елемент.

3.Дана квадратна матриця розмірності М, повернути її на 90

градусів у додатному напрямку.

4. Отримати квадратну матрицю розмірності N.

1

1

.

.

1

1

1

 

 

 

 

1

 

.

 

0

0 .

 

.

 

0

0 .

 

1

 

 

 

 

1

 

1

1

.

.

1

1

17.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – кількість проміжків монотонності (тобто ділянок, на яких його елементи спадають); – кількість локальних мінімумів.

2.Перетворити масив цілих чисел розмірності N, збільшив першу серію найбільшої довжини на один елемент.

3.Дана квадратна матриця розмірності М, повернути її на 180 градусів у додатному напрямку.

88

4. Отримати квадратну матрицю розмірності N.

1

1

1

1

1

1

2

2

2

2

2

 

 

3

3

3

3

 

 

 

. . .

 

 

 

 

. .

 

 

 

 

 

n

 

 

 

 

0

18.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – кількість локальних максимумів; – суму елементів масиву більше 20 та кратних 3.

2.Перетворити масив цілих чисел розмірності N, вставивши до кожної серії нульовий елемент.

3.Дана квадратна матриця розмірності М, повернути її на 270

градусів у додатному напрямку.

4. Отримати квадратну матрицю розмірності N.

1

1 . .

1

1

 

1 . .

1

 

 

0

1

1

 

0

 

0

1

1

 

0

 

 

1 . .

1

 

 

1

1 . .

1

1

19.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – кількість елементів масиву кратних 13; – середнє арифметичне від’ємних елементів масиву.

2.Перетворити масив цілих чисел розмірності N, вставивши після кожної серії нульовий елемент.

3.Дана матриця розмірності MxN. Елемент називається лока-

льним мінімумом, якщо він менше всіх сусідніх елементів. Замінити всі локальні мінімуми даної матриці на 0.

4. Отримати квадратну матрицю розмірності N.

1

 

0

0

1

1

1

 

1

1

 

.

 

1

1 .

 

.

 

1

1 .

 

1

1

 

1

1

 

1

 

0

0

1

20.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – кількість локальних максимумів; – добуток перших та останніх 5 елементів.

2. Перетворити масив цілих чисел розмірності N, видаливши із

масиву всі серії, довжина яких дорівнює k.

3. Дана матриця розмірності MxN. Елемент називається локальним максимумом, якщо він більше всіх сусідніх елементів. Підрахувати кількість локальних мінімумів.

89

4. Отримати квадратну матрицю розмірності N.

1

2

3 . . n

. . . . .

 

. . . .

 

n 2

n 1

n

 

n 1

n

 

 

n

 

0

21.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – мінімальний парний елемент, що знаходиться на непарній позиції; – добуток 10 центральних елементів масиву. 2. Перетворити масив цілих чисел розмірності N, видаливши із

масиву всі серії, довжина яких менша k.

3. Дана матриця розмірності MxN. Знайти елемент, що є максимальним у своєму рядку та мінімальним у своєму стовпці. Якщо такий елемент відсутній, вивести 0.

4. Отримати квадратну матрицю розмірності N.

n

1

n 1

2

 

 

. .

 

 

. .

 

.

.

 

n

1

22.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – кількість нульових елементів масиву; – добуток мінімального та максимального елементів.

2. Перетворити масив цілих чисел розмірності N, видаливши із

масиву всі серії, довжина яких більша k.

3. Дано матрицю розмірності 5х9. Перед першим стовпцем, що містить лише додатні елементи, додати стовпець, що містить лише одиниці.

4. Отримати квадратну матрицю розмірності N.

 

n

n 1

n 2

.

.

0

 

 

.

 

 

 

 

 

 

 

0

1

.

.

.

n

23.1. В одновимірному масиві, що складається з N цілих елементів, обчислити: – кількість максимальних елементів; – добуток від’ємних елементів, що стоять на парних позиціях.

2. Перетворити масив цілих чисел розмірності N, видаливши із

масиву всі серії довжина яких більша k.

3. Дано матрицю розмірності 5х9. Перед останнім стовпцем, що містить лише від’ємні елементи, додати стовпець, що містить лише одиниці.

90