Скачиваний:
9
Добавлен:
09.12.2018
Размер:
23.83 Кб
Скачать

Практическая работа № 5

Сортировка массивов методом Шелла

Цель работы: научиться сортировать одномерные и двумерные массивы методом Шелла.

Задание: отсортировать в двумерном массиве строку, в которой находится максимальное число.

#include <iostream>

#include <cstdlib>

#include <iomanip>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

const int size = 5;

int M[size][size];

int max_index_i = 0;

int max_index_j = 0;

cout << "Массив: " << endl;

for (int i = 0; i < size; i++) {

for (int j = 0; j < size; j++){

M[i][j] = rand() % 100 - 50;

cout << setw(5) << M[i][j];

if(M[i][j] >

M[max_index_i][max_index_j]) {

max_index_i = i;

max_index_j = j;

}

}

cout << endl;

}

cout << "Максимальное значение "

<< M[max_index_i][max_index_j] << ", в строке " << max_index_i << ".\n";

int i, j, k, t;

for (k = size/2; k > 0; k /=2){

for (i = k; i < size; i++) {

t = M[max_index_i][i];

for (j = i; j >= k; j -= k)

if (t < M[max_index_i][j - k])

M[max_index_i][j] =

M[max_index_i][j-k];

else break;

M[max_index_i][j] = t;

}

}

cout << "Новый массив:" << endl;

for (int i = 0; i < size; i++){

for (int j = 0; j < size; j++)

cout << setw(5) << M[i][j];

cout << endl;

}

return 0;

}

Соседние файлы в предмете Методы и средства проектирования информационных систем и технологий