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

Быстрая сортировка элементов столбцов двумерного массива, стоящих на четных позициях - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Квадратичная интерполяция http://www.cyberforum.ru/cpp-beginners/thread1309545.html
Всем привет, делаю квадратичную интерполяцию изображения и столкнулся с такой проблемой Некорректно интерполируется изображение - при увеличении в 2 раза, больше чем в 2 раза, меньше чем в 2 раза Суть квадратичной интерполяции понятен - теорию читал. Сейчас проблема стоит с правильным выбором трех точек, т.е. парабол и определении шага - как тут быть? Раньше брали 3 точки слева и шли в право,...
C++ Последовательность сообщений Здравствуйте. Есть переменная char obuf = "Hello from Client"; как передать последовательность сообщений вида Hello from Client xxx (xxx – номер сообщения). Пробовал такой вариант sprintf ( obuf + strlen ( obuf ), " %d ", i ); но он записывает все цифры в строку Hello from Client 0 1 2 и т.д А мне нужно чтобы был только счетчик http://www.cyberforum.ru/cpp-beginners/thread1309538.html
C++ Почему не записывается символьный массив в классе?
в отмеченном месте выдает ошибку доступа для записи в первом случае, во втором все нормально, почему? #include<iostream> using namespace std; class WordIndexS { public: struct WORD
Найти произвольный член последовательности C++
Напишите код к программе пожалуйста. Срочно надо, а времени нету. Задание: Даны действительные числа a1,…,a10 и натуральное число m. Последовательность b1,b2... образуются по закону b1=a1,...b10=a10 bk=bk-1+bk-2+…+bk-10, k=11,12,… Получить bm. Добавлено через 1 час 15 минут Кто может код написать, пожалуйста.
C++ Одинаковый фрагмент действует по-разному в двух программах http://www.cyberforum.ru/cpp-beginners/thread1309486.html
#include <fstream> #include <iostream> using namespace std; int main() { ifstream fin; char name; do {
C++ Записать каждое слово строки в новую переменную. Есть строка string в ней различные слова, нужно выводить по одному слову в другую строку string, вывести второй стринг cout - ом потом вторую строку обнулить и так повторить процесс пока не закончятся слова в первой строке. Как это реализовать? подробнее

Показать сообщение отдельно
Zazy
 Аватар для Zazy
37 / 37 / 11
Регистрация: 14.04.2013
Сообщений: 167
24.11.2014, 22:27     Быстрая сортировка элементов столбцов двумерного массива, стоящих на четных позициях
Форматирование сами попробуйте прикрутить.
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
void print_matrix(int **matrix, const int SIZE);
void quicksort(int *arr, int first, int last);
void matrix_inner(int **matrix, const int SIZE);
 
using namespace std;
 
int main()
{
    int SIZE = 0;
    cout << "Enter size matrix: ";
    cin >> SIZE;
    
    int **matrix = new int*[SIZE];
    for (int i = 0; i < SIZE; i++)
        matrix[i] = new int[SIZE];
    srand(time(NULL));
    
    for (int i = 0; i < SIZE; i++)
        for (int j = 0; j < SIZE; j++)
            matrix[i][j] = rand() % 100;
    cout << "Source matrix.\n";
    print_matrix(matrix, SIZE);
    cout << "==============\n";
    cout << "Sorted matrix.\n";
    matrix_inner(matrix, SIZE);
    print_matrix(matrix, SIZE);
 
 
    for (int i = 0; i < SIZE; i++)
        delete[]matrix[i];
    delete[]matrix;
    system("pause");
    return 0;
 
}
 
void print_matrix(int **matrix, const int SIZE)
{
    for (int i = 0; i < SIZE; i++)
    {
        for (int j = 0; j < SIZE; j++)
            cout << matrix[i][j] << ' ';
        cout << endl;
    }
}
 
void matrix_inner(int **matrix, const int SIZE)
{
  int ttt = SIZE / 2;
    int * temp_arr = new int[ttt];
    for (int i = 0; i < SIZE; i++)
    {
      for (int j = 0; j < SIZE; j++)
            if ((j + 1) % 2 == 0)
                temp_arr[j / 2] = matrix[j][i];
 
      quicksort(temp_arr, 0, SIZE / 2 - 1);
          
      for (int l = 0; l < SIZE; l++)
            if ((l + 1) % 2 == 0)
                matrix[l][i] = temp_arr[l/2];
    }
    delete[] temp_arr;
}
 
void quicksort(int *arr, int first, int last)
{
    int mid, count;
    int f = first, l = last;
    mid = arr[l / 2];
    do
    {
        while (arr[f]>mid) f++;
        while (arr[l]<mid) l--;
        if (f <= l)
        {
            count = arr[f];
            arr[f] = arr[l];
            arr[l] = count;
            f--;
            l++;
        }
    } while (f >= l);
    if (first>l) quicksort(arr, f, last);
    if (f>last) quicksort(arr, first, l);
}
Миниатюры
Быстрая сортировка элементов столбцов двумерного массива, стоящих на четных позициях  
 
Текущее время: 06:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru