Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
mrReptiloid
311 / 174 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
1

Отсортировать все положительные элементы массива с нечетными индексами методом пирамидальной сортировки

30.11.2015, 18:34. Просмотров 312. Ответов 0
Метки нет (Все метки)

Отсортировать все положительные элементы массива с нечетными индексами методом пирамидальной сортировки.
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
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
 
void siftDown(int *numbers, int root, int bottom) {
  int done, maxChild, temp;
  done = 0;
  while ((root*2 <= bottom) && (!done)) {
    if (root*2 == bottom)
      maxChild = root * 2;
    else if (numbers[root * 2] > numbers[root * 2 + 1])
      maxChild = root * 2;
    else
      maxChild = root * 2 + 1;
    if (numbers[root] < numbers[maxChild]) {
      temp = numbers[root];
      numbers[root] = numbers[maxChild];
      numbers[maxChild] = temp;
      root = maxChild;
    }  else
      done = 1;
  }
}
void heapSort(int *numbers, int array_size) {
  int i, temp;
  for (i = (array_size / 2)-1; i >= 0; i--)
  if(i%2!=0 && numbers[i] > 0)
    siftDown(numbers, i, array_size);
  for (i = array_size-1; i >= 1; i--) {
    if(i%2!=0 &&numbers[i] > 0){
      
    temp = numbers[0];
    numbers[0] = numbers[i];
    numbers[i] = temp;
    siftDown(numbers, 0, i-1);
}
  }
}
 
int main() {
 
     int a[6] { 2, 5, 0, -2, 10, -4};
 system("cls");
  for(int i=0;i<6;i++)
    printf("%d ",a[i]);
  printf("\n");
  heapSort(a,6);
  for(int i=0;i<6;i++)
    printf("%d ",a[i]);
  printf("\n");
  system("pause");
    return 0;
}
выходит фигня...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2015, 18:34
Ответы с готовыми решениями:

Отсортировать по убыванию элементы массива с нечетными номерами методом выбора
Отсортировать по убыванию элементы массива с нечетными номерами методом выбора. На dev c++ надо...

Отсортировать по убыванию элементы массива с нечетными номерами методом обмена в прогрмамме С++
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне...

Отсортировать по убыванию положительные элементы массива методом обмена
Отсортировать по убыванию положительные элементы массива методом обмена

Отсортировать методом быстрой сортировки элементы массива, стоящие на четных позициях
Имеется одномерный массив длиной N = 50. Отсортировать методом быстрой сортировки элементы массива,...

Отсортировать все строки методом быстрой сортировки так, чтоб элементы в них располагались по возрастанию
Всем привет:) Не могу никак сделать, помогите, кто шарит) Есть массив 10 на 10. Нужно...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2015, 18:34

Отсортировать в порядке возрастания все положительные элементы массива
В массиве из n вещественных чисел отсортировать в порядке возрастания все положительные элементы....

Упорядочить элементы массива с нечетными индексами
Написать программу упорядочивания элементов массива, имеющих нечетные индексы по возрастанию или...

Вывести элементы массива с четными/нечетными индексами
3. Дан массив размера N. Вывести вначале его элементы с четными1|нечетными2 индексами, а затем — с...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.