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