Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Кафедра
Інформаційних
систем та мереж
Лабораторна робота №9
на тему
Алгоритми пошуку та сортування для одновимірних масив.
Мета роботи: набуття практичних навичок застосування алгоритмів пошуку та сортування.
Завдання на роботу
Розробити процедури та функції для пошуку в одновимірних масивах посортованих та непосортованих та для їх сотування. В контрольному прикладі забезпечити пошук потрібних елментів в непосортованих масивах. Здійснити їх сортування. Здійснити пошук в посортованих масивах. Оцінити час виконання операцій.
11
Елементи масиву А, які повторюються і одночасно є в масиві В
Текст програми:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#define n 16
void sort(int *a, int *b);
void search(int *a, int *b);
void view(int *a, int *b);
void main()
{ int A[n],B[n],el;
clrscr();
randomize();
for(int i=0; i<n; i++)
{A[i]=random(99); B[i]=random(99); if(i>1&&A[i]<random(250)) {A[random(i)]=A[i]; if(random(2)) B[random(i)]=A[i];} }
puts("Згенерованi масиви:");
view(A,B);
puts("\nЕлементи масиву А, якi повторюються i одночасно є в В:");
search(A,B);
sort(A,B);
puts("\nПосортованi масиви:");
view(A,B);
puts("\nЕлементи масиву А, якi повторюються i одночасно є в В:");
search(A,B);
getch();
}
void view(int *a, int *b)
{
printf("Масив A=[");
for(int i=0; i<n; i++)
{printf("%d",a[i]); if(i!=n-1)printf(","); else printf("]\n"); }
printf("Масив B=[");
for(i=0; i<n; i++)
{printf("%d",b[i]); if(i!=n-1)printf(","); else printf("]\n"); }
}
void sort(int *a, int *b)
{int temp;
for(int j=0; j<n; j++)
for(int i=0; i<n-1; i++)
{if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
if(b[i]>b[i+1])
{
temp=b[i];
b[i]=b[i+1];
b[i+1]=temp;
}
}}
int in(int el,int *a,int j)
{
for(int i=j; i<n; i++)
if(el==a[i]&&i!=j) return 1;
return 0;
}
void search(int *a, int *b)
{ int z=0,bul=1,*s;
s=(int *)malloc((n/2)*sizeof(int));
for(int i=0; i<n; i++)
{
for(int j=0; j<z; j++)
if(a[i]!=s[j]) bul=1; else {bul=0; break;}
if(in(a[i],a,i)&&bul==1) {s[z]=a[i]; z++;} }
for(int j=0; j<z; j++)
if(in(s[j],b,-1)) printf("%d ",s[j]);
puts("");
}
Результати виконання програми:
Висновки:
Я набув практичних навичок застосування алгоритмів пошуку та сортування.