Алгоритмы сортировки массивов.Реализуйте алгоритмы сортировок данных массивов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задания к лабораторной работе. Выполните приведенные ниже задания. 1. Даны два целочисленных массива 2. Реализуйте алгоритмы сортировок данных массивов. 3. Сформировать третий массив на основе данных, который также упорядочен и представляет операцию с элементами исходных массивов: • объединение (содержит числа, принадлежащие хотя бы одному из множеств); • перечисление (числа, принадлежащие обоим множествам); • разность (числа, принадлежащие первому множеству, но не второму); • симметричную разность (объединение разностей множеств). Диапазон массивов (400 - +600) Методы сортировки 1)прямым выбором. 2)быстрая сортировка. До этого мы решали задачки в вводом и выводом массивов и вот те на,с помощью друзей написал все кроме 2 последних пунктов,а также есть некое количество ошибок. P.s В книгах ничего особо найти не смог.
#include <stdio.h>  
#include <conio.h>
#include <stdlib.h>
#include "stdafx.h"

void PryamoyVibor (int* a,int n)
{
     int i,j,k;
     for(i=0;i<n;i++)
     {
                     k=i;
                     for(j=i+1;j<n;j++)
                     if(a[j]<a[k])
                     k=j;
                     j=a[k];
                     a[k]=a[i];
                     a[i]=j;
     }
}
 
template<class T>
void quickSortR(T* b, long n) {

  long i = 0, j = n;       
  T temp, p;
 
  p = a[ n>>1 ];      

  do {
    while ( b[i] < p ) i++;
    while ( a[j] > p ) j--;
 
    if (i <= j) {
      temp = b[i]; b[i] = b[j]; b[j] = temp;
      i++; j--;
    }
  } while ( i<=j );

  if ( j > 0 ) quickSortR(a, j);
  if ( n > i ) quickSortR(a+i, n-i);
}
 
int main()
{const int n=20;
int a[n],b[n],c[40],d[40],i,j,k,q,w,r,count=1;
 
printf("Pervonachalnii Masiv a[%d]: \n",n);
for(i=0;i<n;i++)
{
                a[i]=0+rand() % 600;
                printf("d",a[i]);
                }
            printf("Pervonachalnii Masiv b[%d]: \n",n);
            for(i=0;i<n;i++)
            {
           b[i]=0+rand()%600;
               printf("d",b[i]);
               }

         PryamoyVibor (a,n);
          printf("\n \n Massiv a[%d],otsortirovannii PryamoyVibor: \n ",n);
             for(i=0;i<n;i++)  
               printf("d",a[i]);
               
     quickSortR (b,n);
    printf("\n \n Massiv b[%d],otsortirovannii metodom quickSortR: \n",n);
      for(i=0;i<n;i++)  
        printf(" %d ",b[i]);

      printf("%d",b[i]);
      
      for(i=0;q=0;i<n;i++)
          c[q++]=a[i];
      for(j=0;j<n;j++)
          c[q++]=b[j];
       
      quickSortR(c,q);
      int temp=c[0];
      for(i=1;i<q;i++)
      {
          if(c[i]!=temp)
          {
              for(j=i+1;j<q;j++)
                  if(c[i]=c[j])
                      c[j]=temp;
              count++;
          }
 
      }
      count=0;
      for(i=1;i<q;i++)
          if(c[i]!=c[0])
              c[++count]=c[i];
      printf("\n \n Peresechenie massivov a{%d] i b[%d] (%d elementov): \n",n,n,count+1);
      for(i=0;i<count;i++)
          printf("%d",c[i]));
 
      for(i=0;w=0;i<n;i++)
          if(a[i]=b[j])
              d[w++]=a[i];
      printf("Peresechenie massivov a{%d] i b[%d] (%d elementov): \n" n,n,w);
      for(i=0;i<w;i++)
          printf("%d",d[i]);
      getch();
      return 0;
}
Помогите грамотно расставить комментарии,чтоб я сам в любой момент понимал что к чему и кто знает как сделать разность и симметричную разность?
....

Решение задачи: «Алгоритмы сортировки массивов.Реализуйте алгоритмы сортировок данных массивов»

textual
Листинг программы
template<class T>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы