Форум программистов, компьютерный форум CyberForum.ru

Сортировка слиянием - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ How to get FT_Glyph_Metrics? http://www.cyberforum.ru/cpp-beginners/thread656532.html
Какая функция возвращает FT_Glyph_Metrics для заданного глифа? Ну или как получить vertBearingY для определенного глифа? Заранее спасибо за ответы. Добавлено через 4 часа 55 минут Все еще актуально. Та хоть мануалом кинте в голову :) http://www.cs.sunysb.edu/documentation/freetype-2.1.9/docs/tutorial/step2.html
C++ Неверный вывод в консоль доброго времени суток не могу понять что не правильно..до этого писал на шарпе .там проблем с многомерными массивами не было.... теперь в универе захотели переобучить на с++..кинул листинг и скриншот..объясните почему так и что я не правильно сделал?? // laba6_var8.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <tchar.h>... http://www.cyberforum.ru/cpp-beginners/thread656525.html
Дано натуральное N. Составить программу для поиска первой цифры этого числа C++
Помогите написать программу с применением функции "while". Вот задание: Дано натуральное N. Составить программу для поиска первой цифры этого числа.
C++ Описание билбиотек, литератутра
Доброго времени суток! Возникла "небольшая" проблема. Появилась необходимость написать консольное приложение оперирующее директориями и файлами. Порылся в сети, нашёл упоминание библиотек dir.h и dirent.h, однако ничего кроме упоминания накопать не удалось. Описание функций данных библиотек так же найти не удалось. Укажите, пожалуйста, ресурс или литературу в которых имеется описание...
C++ Стегография. Формат .wav http://www.cyberforum.ru/cpp-beginners/thread656486.html
Пишу лабу по стегографии. Необходимо использовать формат .wav (.wave) и алгоритм LSB. Подскажите, сколько байт заголовка занимает сей формат (сколько надо пропустить)? 44 байта?
C++ При добавлении пустого конструктора копирования начинается какая-то ерунда Всем пт! Вот у меня есть такой код: class human { private: int age; public: human (int a) {age = a;} подробнее

Показать сообщение отдельно
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
23.09.2012, 15:16     Сортировка слиянием
Привет всем, пытаюсь сделать сортировку 100 чисел слиянием. Выдается ошибка на функции delete :error type ‘int’ argument given to ‘delete’ expected pointer
Вот код:

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
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <iomanip>
 
 
using namespace std;
 
int intarray[100];
 
template<class T>
// a - сортируемый массив, его левая граница lb, правая граница ub
 
void mergeSort(T a[], long lb, long ub)
{
  long split;                   // индекс, по которому делим массив
 
  if (lb < ub) {                // если есть более 1 элемента
 
    split = (lb + ub)/2;
 
    mergeSort(a, lb, split);       // сортировать левую половину
    mergeSort(a, split+1, ub);// сортировать правую половину
    merge(a, lb, split, ub);    // слить результаты в общий массив
  }
}
template<class T>
void merge(T a[], long lb, long split, long ub)
 {
// Слияние упорядоченных частей массива в буфер temp
// с дальнейшим переносом содержимого temp в a[lb]...a[ub]
 
  // текущая позиция чтения из первой последовательности a[lb]...a[split]
  long pos1=lb;
 
  // текущая позиция чтения из второй последовательности a[split+1]...a[ub]
  long pos2=split+1;
 
  // текущая позиция записи в temp
  long pos3=0;
 
  T *temp = new T[ub-lb+1];
 
  // идет слияние, пока есть хоть один элемент в каждой последовательности
  while (pos1 <= split && pos2 <= ub) {
    if (a[pos1] < a[pos2])
      temp[pos3++] = a[pos1++];
    else
      temp[pos3++] = a[pos2++];
  }
 
  // одна последовательность закончилась -
  // копировать остаток другой в конец буфера
  while (pos2 <= ub)   // пока вторая последовательность непуста
    temp[pos3++] = a[pos2++];
  while (pos1 <= split)  // пока первая последовательность непуста
    temp[pos3++] = a[pos1++];
 
  // скопировать буфер temp в a[lb]...a[ub]
  for (pos3 = 0; pos3 < ub-lb+1; pos3++)
    a[lb+pos3] = temp[pos3];
 
   delete temp[ub-lb+1];
}
 
 
int main()
{
    {
        srand(time(NULL));
 
        for(int i=0;i<100;i++)
          {
            intarray[i]=rand()%1000;
            for(int j=0;j<i;j++)
             if(intarray[j]==intarray[i])
               intarray[i]=rand()%1000;
          }
 
        cout<<"Odnomernyi massiv iz 100 elementov, v vide tablicy:"<<endl<<endl;
 
        for(int i=0;i<10;i++)     //Вывод на массива на экран
          {
            for(int j=0;j<10;j++)
              cout<<setw(7)<<intarray[i*10+j];
            cout<<endl;
          }
         mergeSort(intarray, 0, 100);
    // a - сортируемый массив, его левая граница lb, правая граница ub
}
}
Добавлено через 27 минут
Я сам разобрался счастья полные штаны )))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru