Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 1 по курсу Программирование для ЭВМ 3 Тема- Алгоритмы поиска

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2024

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Ижевский государственный технический университет

имени М.Т. Калашникова»

Факультет «Математика и естественные науки»

     Кафедра «Прикладная математика и информатика»

Лабораторная работа № 1 по курсу «Программирование для ЭВМ 3»

Тема: «Алгоритмы поиска»

Выполнил

студент гр. Б03-183-1                                                                      Загребин И.В.

Принял

ст. преподаватель                                                                           Степанова Т.М.

Ижевск 2013

Постановка задачи.

1.Реализовать метод сортировки с помощью прямого обмена («пузырьковая» сортировка)

2.Реализовать метод сортировки с помощью включений с  уменьшающимися расстояниями (сортировка Шелла)

Теоретическая часть.

Задача 1.

Алгоритм состоит из повторяющихся проходов по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются N-1 раз или до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает – массив отсортирован. При каждом проходе алгоритма по внутреннему циклу, очередной наибольший элемент массива ставится на своё место в конце массива рядом с предыдущим «наибольшим элементом», а наименьший элемент перемещается на одну позицию к началу массива («всплывает» до нужной позиции как пузырёк в воде, отсюда и название алгоритма).

Задача 2.

При использовании сортировки Шелла массив делится на n частей. Первая часть массива содержит элементы 0,n,2n,3n и т.д., вторая часть 1,n+1,2n+1,3n+1 и т.д. Каждая часть последовательности сортируется независимо при помощи сортировки вставками с шагом n. Далее уменьшаем шаг в 2 раза (n=n/2) и повторим алгоритм. Повторяя итерационный процесс, пока шаг не станет равным 1. На выходе мы получим отсортированный массив.

Результаты работы программы и выводы.

Задача 1.

Задача 2.

Приложение А.

Задача 1.

#include <iostream>
#include <iostream>
#include <stdio.h>
using namespace std;
const int N = 5;
int k=0;
void bubble(int*a, int n)
{
int i;
for (i=N-1;i>0;i--)
{
for (int j=0;j<i;j++)
{
if(a[j]>a[j+1])
{
int tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
k++;
}
}
}
}
int main ()
{
int i;
int *a = new int[N];
cout«"Enter elements of massive: "«endl;
for (i=0;i<N;i++){
cin»a[i];
}
cout«"Your massive is:";
for (i=0;i<N;i++){
cout«a[i]«" ";}
cout«endl;
bubble(a, N);
cout«"Massive after sort:";
for (i=0;i<N;i++){
cout«a[i]«" ";}

cout«"\nSteps:"«k«endl;
system("pause");
return 0;

}

Задача 2.

#include <iostream>
using namespace std;
int main()
{
int k=0;
int p=0;
int size=0;
cout«"Enter size of massive:";
cin » size;
int *a = new int[size];
cout«"\nEnter elements of massive:"«endl;
for (int i = 0; i < size; i++)
{
cin » a[i];
}
cout«"Your massive :"«endl;
for (int i = 0; i < size; i++)
{
cout « a[i]«' ';
} 
int step = size / 2;
while (step > 0)
{
for (int i = 0; i < (size - step); i++)
{
int j = i;
while (j >= 0 && a[j] > a[j + step]) 
{
int temp = a[j];
a[j] = a[j + step];
a[j + step] = temp;
j--;
cout«"\nSorting:"«endl;
k++;
for (int u=0;u<size;u++){
cout«a[u]«' ';
}
}
}
step = step / 2;
p++;
} 
cout«"\nSorted massive:"«endl;
for (int i = 0; i < size; i++)
{
cout « a[i] « ' ';
}
cout«"\nNumber of steps:"«p;
cout«"\nNumber of permutations:"«k«endl;
system("pause");
return 0;
}

Список литературы.

1.Сортировка пузырьком: http://ru.wikipedia.org/wiki/Сортировка_пузырьком

2. Сортировка Шелла: http://algorithmlib.org/sort_shella

3. Никлаус Вирт. Алгоритмы и структуры данных: Мир,1989. 360с.




1. Лабораторная работа ’17 Изучение законов соударения шаров Цель работы- Изучение законов соударения шар.html
2. Основы теории информации Теория информации
3. Исследование нормативно-правовой базы информационной безопасности предприятия отделения Юго-Западного банка Сбербанка России ----
4. Эскиз к портрету биологической эволюции
5. О книге Г Н Трофимовой Языковой вкус интернет-эпохи в России Функционирование русского языка в Интернете
6. коммунального хозяйства и отчасти органы здравоохранения ратовавшие за безопасность граждан пьющих воду с
7. Статья- На руинах имперской государственности
8. Рождественская вечеринка Прошу прощения сэр сказал я
9. Биологическая метафора в социологии
10. Теологический агностицизм в диалоге с религией и атеизмом
11. Коллективные и индивидуальные средства защиты работников
12. Пересвет
13. Анализ чувствительности денежных потоков инвестиционного проекта ~ это анализ того как изменятся денежные
14. Вариант 10 Выбираем источник света согласно рекомендациям n
15. Какой вам представляется ваша собственная мать А Всегда открытая внимательная готовая принять и выслуша
16. ~орша~ан ортаны ~ор~ау бойынша ~Р ны~ Конституциясы
17. Topic 1. Semiotics nd dignosis of gynecologicl diseses Ptient 34 yers
18. Гражданско-правовая ответственность
19. Оценочная деятельность учителя как средство формирования учебно-познавательной мотивации младших школьников
20. Российское законодательство о государственных закупках спорах в области ипотеки фирменных наименованиях.html