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

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

22.05.2013, 23:23. Показов 2122. Ответов 1
Метки нет (Все метки)

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
86
87
88
89
90
91
92
93
#include<stdio.h>
 
void heapsort(char* list[],int);
void heapify(char* list[],int);
void adjust(char* list[],int);
 
main()
{
 int n,i;
 
 printf("\nEnter the limit:");
 scanf("%d",&n);
 
 char* list[n];
 printf("\nEnter the elements:");
 for(i=0;i<n;i++)
 {
    list[i] = (char*)malloc(sizeof(char));
    list[i][0] = '\0';
    scanf("%s", list[i]);
 }
 heapsort(list,n);
 
 printf("\nThe Sorted Elements Are:\n");
 for(i=0;i<n;i++)
  printf("%s ",list[i]);
 printf("\n"); 
}
 
void heapsort(char* list[],int n)
{
 int i;
 char* t;
 t = (char*)malloc(sizeof(char));
 heapify(list,n);
 
 for(i=n-1;i>0;i--)
 {
  t = list[0];
  list[0] = list[i];
  list[i] = t;
  adjust(list,i);
 }
}
 
 
void heapify(char* list[],int n)
{
 int k,i,j;
 char* item;
 item = (char*)malloc(sizeof(char));
 
 for(k=1;k<n;k++)
 {
  item = list[k];
  i = k;
  j = (i-1)/2;
 
  while((i>0) && (item > list[j]))
  {
   list[i] = list[j];
   i = j;
   j = (i-1)/2;
  }
  list[i] = item;
 }
}
 
void adjust(char* list[],int n)
{
 int i,j;
 char* item;
 
 j = 0;
 item = list[j];
 i = 2*j+1;
 
 while(i<=n-1)
 {
  if(i+1 <= n-1)
   if(list[i] < list[i+1])
    i++;
  if(item < list[i])
  {
   list[j] = list[i];
   j = i;
   i = 2*j+1;
  }
  else
   break;
 }
 list[j] = item;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2013, 23:23
Ответы с готовыми решениями:

Пирамидальная сортировка массива
Можете скинуть код програмы с пирамидальной сортировкой массива

Пирамидальная сортировка
Подскажите, что не так? В конце лишний раз всегда проходит. а - массив к - количество массива...

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

Сортировка строк массива
Есть матрица 8на8. Нужно найти сумму элементов каждой строки,а потом поменять строки в порядке...

1
33 / 33 / 25
Регистрация: 06.01.2012
Сообщений: 142
25.05.2013, 23:22 2
Со строками аналогично, разве что сравниваешь через strcmp
1
25.05.2013, 23:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2013, 23:22
Помогаю со студенческими работами здесь

Сортировка массива строк
дали задание &quot;описать структуру WORKER содержащую следующие поля: фамилию и инициалы...

Сортировка массива строк
Добрый день! подскажите, как организовать сортировку строк массива s

Сортировка строк двумерного массива
#include&lt;stdio.h&gt; main() { int A,i,j,c; clrscr(); for(i=0;i&lt;3;i++) for(j=0;j&lt;3;j++) ...

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


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

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

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