Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

void main()



{ 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...