Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
19 / 19 / 13
Регистрация: 22.11.2011
Сообщений: 101
1

Многопутевое сбалансированное слияние

07.03.2012, 01:38. Показов 1593. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как реализовать многопутевое сбалансированное слияние.
есть отсортированный массив
C
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
    setlocale(LC_ALL,"Rus");
    int q,w,i=0,j=1;
    int n[9][3]={{4,8,3},{1,2,3},{75,852,34},{1,8,4},{175,13,15},{10,11,12},{56,1254,754},{115,621,745},{135,116,158}};
    int n1[3][3],n2[3][3],n3[3][3];
    for(q=0;q<3;q++)
    {
        for(w=0;w<3;w++)
        {
        n1[q][w]=n[i][w];
        //printf("%d ",n1[q][w]);
        n2[q][w]=n[i+1][w];
        //printf("%d ",n2[q][w]);
        n3[q][w]=n[i+2][w];
        //printf("%d ",n3[q][w]);
        }
        i+=3;
    }
 
    
        int tmp,tmp1,tmp2;         
        for(int j = 0; j < 3-1; j++) // внутренний цикл прохода
        {     
            for(int e=0;e<3-1;e++) 
                {
                    if (n1[e+1][0] < n1[e][0]) 
                    {
                        for(int j=0;j<3;j++)
                        {
                        tmp = n1[e+1][j]; 
                        n1[e+1][j] = n1[e][j]; 
                        n1[e][j] = tmp;
                        
                        /*for(int e=0;e<3;e++)
                        {
                            printf("%d ",n1[e][j]);
                            
                        }printf("\n");*/
                        
                        }
                    }
 
                    if (n2[e+1][0] < n2[e][0]) 
                    {
                        printf("\n");
                        for(int j=0;j<3;j++)
                        {
                        tmp1 = n2[e+1][j]; 
                        n2[e+1][j] = n2[e][j]; 
                        n2[e][j] = tmp1;
                        /*for(int e=0;e<3;e++)
                        {
                            printf("%d ",n2[e][j]);
                        }printf("\n");*/
                        }
                    }
 
                    if (n3[e+1][0] < n3[e][0]) 
                    {
                        printf("\n");
                        for(int j=0;j<3;j++)
                        {
                        tmp2 = n3[e+1][j]; 
                        n3[e+1][j] = n3[e][j]; 
                        n3[e][j] = tmp2;
                        /*for(int e=0;e<3;e++)
                        {
                            printf("%d ",n3[e][j]);
                        }printf("\n");*/
                        }
                    }
                    
                }
 
        }
 
    
_getch();
return 0;
    }
сортируется по полю int [3]
У меня этот двумерный массив отсортировался, как теперь произвести слияние? Если через if else это очень долго будет, надо будет просматривать все возможные комбинации. Как быть???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.03.2012, 01:38
Ответы с готовыми решениями:

Сбалансированное N-ленточное слияние
Помогите, дайте пример кода как это происходит: Сбалансированное N-ленточное слияние Общей...

Сбалансированное многопутевое слияние, нужно найти информацию и желательно реализацию
Задали по инфе рассказать через неделю об этом алгоритме, но нигде не смог найти его внятное...

Free Pascal. Реализация метода внешней сортировки: "Сбалансированное многопутевое слияние"
Здравствуйте уважаемые форумчане,прошу помоч с реализацией данного метода, поискал в и-нете и...

Сортировка "многопутевое сбалансированное слияние"
привет ребят , нужна помощь с много путевой сортировкой кто знает как ее реализовать, хотя бы...

0
07.03.2012, 01:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2012, 01:38
Помогаю со студенческими работами здесь

Сортировка файлов Многопутевое слияние
Реализовать алгоритм сортировки исходного файла, содержащего N элементов (2500&lt;N&lt;100000) методом...

Многопутевое слияние. Пропускается элемент с индексом 1
Собсна вот алгоритм. Проблема в том, что пропускается элемент с индексом 1. В чем проблема. Еще...

Сбалансированное дерево
Ребят, может есть у кого код сбалансированного дерева с подробными комментариями, чтобы...

Сбалансированное дерево
Неупорядоченную последовательность из n различных чисел изобразить в виде сбалансированного дерева....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru