0 / 0 / 1
Регистрация: 20.03.2012
Сообщений: 14
1

Сортировка вставками массивов из 3-х элементов

03.04.2012, 17:58. Показов 1049. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сортировка вставками массивов из 3-х элементов по элементам массива
Не до конца сортирует
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
void Sort (FILE *fp,int **sort,float *res)
 
{
    int tmp[3],pos,b=0;
    for(int i=1;i<(int)*res;i++)
    {
        for(int l=0;l<3;l++)
        {
            tmp[l]=sort[i][l];
        }
        if(sort[i][b]==sort[(i-1)][b])
        {
        i--;
        b++;
        }
        else 
        {
        for(pos=i-1;pos>=0 && sort[pos][b]>tmp[b];pos--)
        {
            for (int l=0;l<3;l++)
            {
            sort[(pos+1)][l]=sort[pos][l];
            }
        }
        for (int l=0;l<3;l++)
        {
        sort[(pos+1)][l]=tmp[l];
        }
        b=0;
        }
    }
 
        for (int j=0;j<(int)*res;j++)
        {
            for (int q=0;q<3;q++)
            {
           fprintf (fp,"%d ",sort[j][q]);
            }
    }
    return;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.04.2012, 17:58
Ответы с готовыми решениями:

Сортировка вставками последовательности элементов, отстоящих друг от друга
Можете подробно обьяснить программу??? void shellSort(int a, int size); int increment(int inc,...

Сортировка вставками
Можете подробно обьяснить программу??? void sort (int *mas,int kol); int kol; int main(int argc,...

Сортировка вставками
Мне нужно написать программу, в которой бы присутствовала сортировка вставками. Желательно в...

Сортировка вставками
Сортировка вставками массивов из 3-х элементов Не до конца сортирует int tmp,pos,b=0; for(int...

2
4053 / 3306 / 924
Регистрация: 25.03.2012
Сообщений: 12,409
Записей в блоге: 1
03.04.2012, 18:37 2
Ты уверен, что разбираешься в том что написал?
Скажи хотя бы ты по величине первого из трёх элементов их упорядочиваешь? Да?
А если элементы первые равны, сравниваешь вторые - это реализуется увеличением индекса b
Мне вот кажется тут огромная проблема в индексе b
(Не уверен до конца)
Наверное после сравнения двух троек индекс должен обнуляться назад

Короче Сделай как приличные люди делают
Напиши отдельно функцию сравнения двух троек чисел
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool is_greater(int i1, i2){
  if (arr[i1][0]==arr[i2][0])
  {
       if (arr[i1][1]==arr[i2][1])
       {
              return arr[i1][2]>arr[i2][2]
   
       }
      else  return arr[i1][1]>arr[i2][1];
   }
   else
   return arr[i1][0]>arr[i2][0];
}
а в алгоритме сортировке сортируй только в одном измерении.
Даже если проблема не в этом, это 100% поможет сделать программу понятнее
1
0 / 0 / 1
Регистрация: 20.03.2012
Сообщений: 14
03.04.2012, 23:37  [ТС] 3
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Короче Сделай как приличные люди делают
Напиши отдельно функцию сравнения двух троек чисел
спасибо за идею, реализовал
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2012, 23:37
Помогаю со студенческими работами здесь

Сортировка вставками
Можете подробно обьяснить программу??? void sort (int *mas, int kol){ int i,j,ii,x;...

Сортировка вставками
Отсортировать элементы методом вставками, и найти максимальное. Например задается массив чисел и...

Сортировка вставками
Сортировка вставками: пусть первые k элементов упорядочены по возростанию. Берется (k+1)-ый...

Сортировка вставками
Как отсортировать элементы стоящие на нечетных местах в порядке возрастания? вот что-то пытался...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru