Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2018, 19:15   #1
nura satre
Пользователь
 
Регистрация: 10.03.2018
Сообщений: 26
По умолчанию [C++] отсортировать двумерный массив

заданиерасположить элементы двумерного массива, которые находятся в парных столбцах в порядке возрастания методом вставки и методом быстрой сортировки
помогите, пожалуйста
методом вставки одно и тоже число выходит, а когда быструю сортировку написала, вообще не работает
Код:
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <iomanip>
using namespace std;
int r=0;
void made(int **a, int *mas, int p, int s)
 {    srand(time(NULL));
    for(int i=0;i<p;i++)
     {   a[i]= new int [s];
        for(int j=0;j<s;j++)
         {  a[i][j]=rand()%80-40; }   }   }
 void made_mas(int **a, int *mas, int *arr, int p, int s)
 {    for(int i=0;i<p;i++)
    {   for(int j=0;j<s;j++)
         {   if((a[i][j])%2==0)
             {   arr[r] = a[i][j];
                 mas[r] = a[i][j];
                 r++;    }   }     }   }
void print_a(int **a, int p, int s)
 {   for(int i=0;i<p;i++)
    {   for(int j=0;j<s;j++)
        {    cout<<setw(4)<<a[i][j];   }
        cout<<endl;   }     }
 void print_mas(int *mas, int r)
 {     for(int i=0;i<r;i++)
  cout<<mas[i]<<"  ";
  cout<<endl; }
void quick_sort(int* mas, int r, int l)
 {
     int k = (r-l)/2+l;
 int x = mas[k];
 int i = l;
 int j = r;
 while (i<=j)
 {
     while(mas[i]<x) i++;
     while (mas[j]>x) j--;
     if (i<=j)
     {
         int t = mas[i];
         mas[i]=mas[j];
         mas[j]=t;
         i++;
         j--;
     }
 }
 if (i<r) quick_sort(i,r);
 if (l<j) quick_sort(l,j);
 }

 void vst_sort(int *arr, int r)
{
    int i,j,x;
for (int i = 1; i<r; i++)
{
x=arr[i];
for (int j=i-1; j>=0 && arr[j] >x; j--)
{
    arr[j+1]=arr[j];
}
arr[j+1]=x;
}
}

 int main()
 {   setlocale(LC_ALL, "Russian");
   int p,s;
   cout<<"Введите кол-во строк двухмерного массива:"<<endl;
   cin>>p;
   cout<<"Введите кол-во столбцов дввухмерного массива:"<<endl;
   cin>>s;
   int o=p*s;
   int *mas=new int[o];
   int *arr=new int[o];
   int **a = new int*[p];
   made(a, mas, p, s);
   cout<<"Двухмерный массив а:"<<endl;
   print_a(a, p, s);
   made_mas(a, mas, arr, p, s);
   cout<<"Массив mas:"<<endl;
   print_mas(mas, r);
   cout<<"Массив arr:"<<endl;
   print_mas(arr, r);
   cout<<endl<<"Быстрая сортировка:"<<endl;
   quick_sort(mas, r);
   print_mas(mas, r);
   cout<<endl<<"Сорт вставками:"<<endl;
   vst_sort(arr, r);
   print_mas(arr, r);
   delete []arr;
   delete []mas;
   delete []a;    }

Последний раз редактировалось nura satre; 04.06.2018 в 11:30.
nura satre вне форума Ответить с цитированием
Старый 03.06.2018, 21:04   #2
nura satre
Пользователь
 
Регистрация: 10.03.2018
Сообщений: 26
По умолчанию

никто не поможет?
nura satre вне форума Ответить с цитированием
Старый 03.06.2018, 21:06   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Парные = чётные. Это вдруг кто захочет уточнить.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что нужно ещё добавить, что бы отсортировать готовый двумерный массив? Dormin Общие вопросы C/C++ 9 15.04.2018 12:04
Двумерный массив. Отсортировать столбцы матрицы по убыванию количества элементов кратных 3 СержГрановский Паскаль, Turbo Pascal, PascalABC.NET 4 06.03.2014 09:05
Сформировать двумерный массив и заполнить его случайными числами и отсортировать столбцы в нём методом "пузырька" ( на Pascal ) duxa27 Помощь студентам 2 26.12.2012 12:25
Задать двумерный массив, вывести на экран отдельно главную и побочную диагонали, отсортировать по убыванию методом пузырька CookieStar Помощь студентам 6 12.12.2011 07:44
Дан двумерный массив, отсортировать его по строкам С++ kontroller Помощь студентам 7 18.02.2010 23:17