Автор работы: Пользователь скрыл имя, 16 Декабря 2011 в 15:08, курсовая работа
Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
И так далее до предпоследнего элемента.
Введение 4
1 Описание метода решения задачи. 5
2 Описание программы. 6
3 Описание методики тестирования программы 9
4 Руководство пользователя по работе с программой 10
Заключение 11
Список использованных источников 12
Приложение А Файл sortirovka.cpp 13
Приложение Б Блок-схема 17
Руководство пользователя по работе с программой
Заключение
В этой работе была реализована демонстрационная программа сортировки массива методом «выбора» в среде разработки программного обеспечения Eclipse.
Программа удовлетворяет поставленным условиям, а именно:
Описаны
метод решения задачи, программа
и используемый алгоритм. Построена
блок-схема программы.
Приложение А
Файл 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;
}
Приложение Б
Блок-схема программы
Информация о работе Демонстрационная программа сортировки методом «выбора»