Алгоритмы сортировки массивов.Реализуйте алгоритмы сортировок данных массивов - 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>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д