1 / 9

Впорядкування масивів

Впорядкування масивів. Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії Конотопської міської ради Сумської області 2008 р. Зміст. Функція sizeof Сортування простим пошуком Метод “бульбашки” Задачі Література.

chavi
Download Presentation

Впорядкування масивів

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Впорядкування масивів Максименко Марина Миколаївна вчитель інформатики вищої категорії, вчитель-методист Конотопської гімназії Конотопської міської ради Сумської області 2008 р.

  2. Зміст • Функція sizeof • Сортування простим пошуком • Метод “бульбашки” • Задачі • Література

  3. Сортування одновимірних масивівФункція sizeof Функція визначення розміру sizeof використовується для обчислення розміру значення виразу чи типу в байтах і має дві форми: sizeof(вираз) sizeof (тип) Наприклад: #include<iostream.h> #include<conio.h> int main (){int little[5]={1,2, 3, 4, 5};double x=1;cout<<“sizeof(float)=“<<sizeof(float)<<endl;cout<<“sizeof(int)=“<<sizeof(int)<<endl;cout<<“sizeof(x)=“<<sizeof(x)<<endl;cout<<“sizeof(x+1)=“<<sizeof(x+1)<<endl;cout<<“sizeof(little)=“<<sizeof(little)<<endl;getch();return 0;} Результат роботи: sizeof(float)=4sizeof(int)=4sizeof(x)=8sizeof(x+1)=8sizeof(little)=20 //5*4

  4. Сортування одновимірних масивівСортування простим пошуком Алгоритм: • Заповнити масив з n елементів • Організувати перегляд масиву n-1 разів • Знайти максимальний елемент у невідсортованій частини масиву; запам'ятати його номер • Поміняти значення знайденого максимального елементу зі значення початкового елементу невідсортованої частини масиву • Вивести отриманий масив

  5. #include<iostream.h> #include<conio.h> Int MaxEl(int a[], int m, int n){int max=a[m]; int L=m;for (int i=m+1; i<n; i++)if (a[i]>=max) {max=a[i]; L=i;}return L;} int main (){int c[]={1,6,21,4,3,5,8,9,7,90,123,1,345};int mc=0;int nc=sizeof(c)/sizeof(int);int temp, Lc;while(mc<nc){ Lc=MaxEl(c, mc, nc);temp=c[mc]; c[mc]=c[Lc]; c[Lc]=temp;mc++}for (int i=0; i<nc;i++)cout<<“ “<<c[i];getch();return 0;} Сортування одновимірних масивівСортування простим пошуком nc=sizeof(c)/sizeof(c[0]) - робота оператора не залежатиме навідь від типу елементів масиву Буде правильно опрацьований масив будь-якого розміру

  6. Алгоритм: Заповнити масив з n елементів Організувати перегляд масиву n-1 разів Організувати порівняння значень кожної пари сусідніх елементів Якщо значення попереднього елементу більше, ніж наступного, переставити сусідні елементи місцями Вивести отриманий масив void bubl(int *mas[], int n){int i.j;int rab;for(j=1; j<n; j++) for (i=1; i<n; i++) if (*mas[i-1]>*mas[i]) { rab=*mas[i-1]; *mas[i-1]=*mas[i]; *mas[i]=rab; }}….bubl(&a, n); //виклик Сортування одновимірних масивівМетод “бульбашки”

  7. void bubl(int *mas[], int n){bool fl=false; int rab,j=1;do{ fl=false; for (int i=0;i<n-j, i++) if (*mas[i]>*mas[i+1]) {rab=*mas[i-1]; *mas[i-1]=*mas[i]; *mas[i]=rab; fl=true; } j++}while (fl);} Може виявитися, що одного перегляду масиву буде досить для впорядкування. Скільки ж разів потрібно виконувати такий перегляд? Відповідь – стільки, скільки потрібно для повного сортування, тобто поки при повному перегляді від початку до кінця масиву жодна пара елементів не поміняється місцями. Для припинення сортування зручно скористатися логічною змінною, котрій спочатку присвоюється false, а потім присвоюється значенняtrueпри кожному обміні. Якщо при черговому перегляді не відбулося жодного обміну, значення цієї змінної залишаєтьсяfalseі перегляд припиняється. Сортування одновимірних масивівМетод “бульбашки” (покращений варіант)

  8. Задачі • Дослідити, чому у функції buble використовується вказівники. Що буде, якщо їх прибрати? • Випробуйте наведені методи сортування. Масиви впорядковуються за зростанням чи за спаданням. Змініть порядок сортування. • Вдоскональте програми, доповнивши їх двома функціями: для виведення масиву і для обміну двох значень (swap) • Підрахуйте, скільки різних чисел є значеннями елементів масиву • Визначте, яке число найчастіше зустрічається в масиві • Увести два масиви. Знайти числа, які зустрічаються в кожному з двох масивів • Увести два впорядкованих за зростанням масиви. Об'єднати їх в один масив так, щоб він виявився впорядкованим за зростанням

  9. Література • Лєхан С.Ф. Інформатика С++. Спецкурс. 10-12 класи. – Шепетівка; Аспект, 2007. • Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. Навчальний посібник. – Львів: СПД Глинський, 2006. • Глушаков С.В., Смирнов С.В., Коваль А.В. Практикум по С++. – Харьков: Фолио, 2006. • Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2003 • Лисенко Т.І. Поглиблене вивчення програмування в школі. – К.:ТОВ Редакція “Комп'ютер”, 2007.

More Related