Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська Політехніка»
Кафедра
Інформаційних
систем та мереж
Лабораторна робота №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("");
}
Результати виконання програми:
Висновки:
Я набув практичних навичок застосування алгоритмів пошуку та сортування.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!