Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
{ for(int k=1;k<=n; k++)
{cout << "input а["<<k<<"] of massive \n";
cin >> a[k]; }
quicksort(1,n); // вызов функции быстрой сортировки
for(k=1; k<=n; k++)
{printf("a[ %d ]= %d \n",k,a[k]);}
cin>>k; }
void swap(int* p,int* q)
{ int prom;
prom=*p;
*p=*q;
*q=prom; }
void quicksort(int l,int r) // функция быстрой сортировки
{ int i,j; i=l; j=r;
{ part(l,r, i, j);
if(i<r) quicksort(i,r); // переход к сортировке слева
if(j>l) quicksort(l,j); } // переход к сортировке справа
}
void part(int l,int r,int &i,int &j)
{ int x; i=l; j=r; x=(l+r)/2;
do { while (a[i]<a[x]) i++; // просмотр: найдёмa[j]> a[x]
while(a[j]>a[x]) j--; // просмотр: найдём a[j]< a[x], меняем местами
if(i<=j)
{ swap(&a[i],&a[j]); // обмен этих элементов
i++;j--; }
} while(i<j); }
7.3 Контрольні запитання
1. Як змінити алгоритм пошуку найбільшого з уведених чисел, щоб він знаходив найменше число?
2. Запропонуйте алгоритм не двоїчного, а троїчного пошуку.
3. Що потрібно змінити в алгоритмі обмінного сортування, щоб першими займали свої місця не великі числа, а маленькі?
4. Поліпшите алгоритм обмінного сортування так, щоб робота припинялася, якщо проходження масиву не викликало жодного обміну.
5. Розробіть алгоритм злиття масивів a і b з упорядкованими ділянками довжини d.
6. Розробіть алгоритм злиття двох масивів з упорядкованими ділянками довільної довжини. Як визначити кінець упорядкованої ділянки?
7. Чи зміниться складність алгоритму злиття, якщо зливати не по два, а по три масива?
7.4 Варіанти індивідуальних завдань
Реалізуйте на практиці 2 алгоритми пошуку та 2 алгоритми сортування. Результати порівняйте.
ПЕРЕЛІК ПОСИЛАНЬ
1. Керниган Б., Ритчи Д. Язык программирования Си: Пер. с англ. — М.: Финансы и статистика, 1992. — 272 с.
2. Страуструп Б. Язык программирования С++. Часть 1. — Киев: "ДиаСофт", 1993. — 264 с.
3. Страуструп Б. Язык программирования С++. Часть 2. — Киев: "ДиаСофт", 1993. — 296 с.
4. Подбельский В.В. Язык Си+: Учеб. пособие. — М.: БИНОМ, 1995. — 400 с.
5. Глушаков С.В. и др. Язык программирования С++. —Харьков: Фолио, 2002. — 500 с.
6. Х.М.Дейтел, П.Дж. Дейтел Как программировать на С++.- М.:ЗАО «Издательство БИНОМ», 2000 г. — 1024 с.
7. Ван Тассел Д. Стиль, разработка, отладка и испытание программ.-M.:Мир,1985.
8. Проценко В.С. Техніка програмування мовою С. —Навч. Посібник. –К.:Либідь, 1993. — 224с.
9. Жешке Р. Толковый словарь стандарта языка Си: — С.-Петербург: Питер, 1994. — 221с.
10. Язык Си. Книга ответов: Пер. с англ. — М.: Финансы и статистика, 1994. — 160 с.
Дата публикования: 2015-04-07; Прочитано: 292 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!