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

Быстрая сортировка: упорядочить нечетные элементы матрицы по возрастанию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятная ошибка http://www.cyberforum.ru/cpp-beginners/thread261939.html
#include <iostream> #include <string> using namespace std; class CMessage { private: char *Text; char *SenderNick;
C++ Люди подскажите какой Microsoft Visual Studio 2010 вы используете? Значит проблема такая поставил Microsoft Visual Studio 2010 Express. Очень многие коды не работают. Вообще в чем проблема. Может другую версию надо поставить? http://www.cyberforum.ru/cpp-beginners/thread261911.html
C++ Borland C
Ребята помогите плиз решить простую задачку!! Найти произведение всех цифр заданого четырехзначного числа!! Заранее спасибо...
C++ получить все сообщения другого приложения
Доброго! Возникла проблема: у меня есть оконное приложение на С++ (Builder 2009), через которое запускается другое приложение - консоль. Мне надо вывести все сообщения из консоли в мое приложение ( скажем в компонент Memo) Как мне это сделать? дайте направление куда копать...
C++ удалить строку с произведением http://www.cyberforum.ru/cpp-beginners/thread261854.html
В двумерном массиве найти произведение каждой строки и удалить из массива строку произведения, которой кратно 3. Если таких произведений несколько, то удалить строку с последним из найденых произведений. Помогите с листингом программы, пожалуйста!
C++ из одного файла в другой подскажите пожалуйста, как скопировать полностью бит в бит из одного exe в другой exe? Чтото не получается :) int main() { ifstream ss; ss.open("C:\\1\\ss.exe",ios::binary); //отсюда читаем ss.seekg(0,ios::end); int pos=ss.tellg(); ss.seekg(0); ofstream ss1; подробнее

Показать сообщение отдельно
kitoboy
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 3
22.03.2011, 16:51     Быстрая сортировка: упорядочить нечетные элементы матрицы по возрастанию
Задача: упорядочить нечетные элементы двумерного массива по возрастанию с помощью quicksort. Также нужно, чтобы программа подсчитала количество сравнений и перестановок и вывела это отдельно. Массив задается отдельной функцией, отсортированный печатается тоже отдельно (это сделано все). Главная проблема с подсчетом (не знаю как реализовать) и сама сортировка почему-то не до конца работает.

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
void quickSort(int** a, int m, int n) //матрица а (m x n)
 {
   int l=0, i, j, p; // l - индекс начального указателя, i - указательна номер строки, j - указатель на последний нечетный элемент, p - элемент для сравнения
   for (i=0;i < m;i++) //для каждой строки (почему-то не работает)
   {
   if (n%2) //проверяет число строк на четность, чтобы узнать какой элемент нужно взять за отсчетный (нужно нечетный)
       {
           j=n-1;
           if ((n/2)%2)
           p=a[i][n/2];
           else
               p=a[i][(n/2)-1];
       }
   else
   {
        j=n-2;
        if ((n/2-1)%2)
           p=a[i][n/2];
           else
               p=a[i][(n/2)-1];
   }
  do 
  {
    while ( a[i][l] < p ) 
        l+=2;
    while ( a[i][j] > p )
        j-=2;
    if (l <= j) 
    {
      SWAP(a[i][l],a[i][j]);
      l+=2; 
      j-=2;
    }
    
  } 
    while ( l<=j );
    
    if ( j > 0 ) 
        quickSort(a, m, j);
    if ( n > l ) 
        quickSort(a+l, m, n-l); //рекурсия, чтобы проверял и дальше пока все не осортирует, кажется, что ошибка здесь
       }
  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru