Сортировка массива методом Шелла - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ребят, помогите,нужно отсортировать двумерный массив методом Шелла. Написал код, вроде всё правильно, но сортировать оно не хочет.
// ConsoleApplication32.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <time.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
 
using namespace std;
 
const int n = 5, m = 6;
int i, j, por, per;
int mass[n][m];
 
void ran() {
    srand(time(NULL));
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            mass[i][j] = rand() % 25;
        }
    }
}
 
void print() {
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf("%d ", mass[i][j]);
            if (j == m - 1) printf("\n");
        }
    }
    printf("\n\n");
}
 
void Sort() {
    int d, i, j;
    for (d = n / 2;d >= 1; d /=  2) {
        for (i = d;i < n;i++) {
            for (j = i;j >= d && mass[j - d]>mass[j]; j -= d) {
                swap(mass[j], mass[j - d]);
            }
        }
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    ran();
    print();
    Sort();
    print();
 
    getchar();
    getchar();
}

Решение задачи: «Сортировка массива методом Шелла»

textual
Листинг программы
mass[j - d]>mass[j]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы