Демонстрационная программа сортировки методом «выбора»
Курсовая работа, 16 Декабря 2011, автор: пользователь скрыл имя
Краткое описание
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
И так далее до предпоследнего элемента.
Содержание
Введение 4
1 Описание метода решения задачи. 5
2 Описание программы. 6
3 Описание методики тестирования программы 9
4 Руководство пользователя по работе с программой 10
Заключение 11
Список использованных источников 12
Приложение А Файл sortirovka.cpp 13
Приложение Б Блок-схема 17
Прикрепленные файлы: 1 файл
курсовая.docx
— 88.14 Кб (Скачать документ)Руководство пользователя по работе с программой
- Введите максимальное значение элементов массива (AMax). Его значение должно быть из диапазона 1..99.
- Введите размер массива (Size). Размер массива не должен превышать 40 элементов.
- Выберите способ задания массива – с клавиатуры (нажмите 2) или с помощью датчика случайных чисел (нажмите 1).
Заключение
В этой работе была реализована демонстрационная программа сортировки массива методом «выбора» в среде разработки программного обеспечения Eclipse.
Программа удовлетворяет поставленным условиям, а именно:
- Программа сохраняет работоспособность при переписывании в любой каталог
- Программа содержит комментарии, поясняющие используемые идентификаторы и подпрограммы.
Описаны
метод решения задачи, программа
и используемый алгоритм. Построена
блок-схема программы.
Список использованной литературы
- Ананий В. Левитин Глава 3. Метод грубой силы: <Сортировка выбором // Алгоритмы: введение в разработку и анализ = Introduction to The Design and Analysis of Aigorithms. — М.: «Вильямс», 2006. — С. 143-144. — ISBN ISBN 5-8459-0987-2
- Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. — 2-е изд. — М.: Вильямс, 2008. — 1296 с. — ISBN 5-8459-0857-4
- Петзольд Ч. Программирование под Windows 95. В двух книгах: BHV - Санкт - Петербург, 2007, silt.
- Ричард С.Линкер, Том Арчер. Программирование для Windows 98. Библия разработчика. “Диалектика ” - Москва, 2009.-864 с.: ил.- Парал. тит. англ. Уч.пос.
- Джесс Либерти. С++ за 21 день. ”Вильямс” - Москва, 2008.-816 с.: ил. - Парал.тит. англ.
- Дэвид Дж. Круглински. Основы С++. “Русская редакция” - Москва, 2007.- 696 с.: ил.
- Кэйт Грегори. Использование Visual C++. “Вильямс” - Москва, 2009.-864 с.: ил.. - Парал.тит. англ., уч. пос.
Приложение А
Файл sortirovka.cpp
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define N 40 // limit the array size
#define Max 99 //
maximum value of array elements
using namespace std;
void createMas( int Size, int AMax,int *a) //Creating an array "a" by random numbers
{
int i;
srand(8);
for (i=0;i<Size;i++)
a[i]=1+rand()%
}
void createMasKeyb(int Size, int AMax,int *a)
{
int i,p;
cout<<"input array ("<<Size<<" numbers)";
i=0;
while (i<Size)
{
cin>>p;
if ((p<AMax+1)&&(p>0))
{
a[i]=p;
i++;
}
}
}
void selection(int &Perm, int Size, int *a)
{int i,j,k, // parameters of cycle
nom, // number of minimal element
min; //
minimal element
Perm=0;
for (i=0;i<Size-1;i++)
{
nom=i;
min=a[i];
for (j=i+1;j<Size;j++) //find the minimum element
if (a[j]<min)
{
min=a[j];
nom=j;
}
if (a[i]>min) // if the current element is greater than the
// minimum then they will be permutated
{
Perm=Perm+1;
a[nom]=a[i];
a[i]=min;
}
cout<<"step="<<i+1<<" array:= "; //step mode
for (k=0;k<Size;k++)
cout<<a[k]<<" ";
cout<<endl;
}
}
int main(void)
{
int Size,i,AMax,Perm,T; //AMax - maximum value of array elements
//Size - array size
//Perm - number of permutation
int *a=new int [N]; //a
- dynamic array
cout<<"input maximum value of array elements - from 1 to 99";
cin>>AMax;
if ((AMax>Max)||(AMax<1))
{
cout<<"Incorrect input AMax";
exit(1);
}
cout<<"input array size - from 1 to "<<N;
cin>>Size;
if ((Size>N)||(Size<1))
{
cout<<"Incorrect input Size";
exit(1);
}
cout<<"Press 1 if you want to specify an array by random numbers, "
"if you want to specify
an array by the keyboard then 2";
cin>>T;
if (T==2)
{
createMasKeyb(
}
else
{
createMas(Size,
}
cout<<"AMax="<<AMax<<
cout<<"Size="<<Size<<
cout<<"initial array:
";
for (i=0;i<Size;i++) //output array
cout<<a[i]<<
cout<<endl;
selection(Perm,Size,a);
cout<<"sorted array
";
for (i=0;i<Size;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"number of comparisons= "<<(Size*(Size-1))/2<<endl;
cout<<"number of permutation=
"<<Perm;
delete [] a;
return EXIT_SUCCESS;
}
Приложение Б
Блок-схема программы