Демонстрационная программа сортировки методом «выбора»

Автор работы: Пользователь скрыл имя, 16 Декабря 2011 в 15:08, курсовая работа

Краткое описание

Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так:
Просматривая массив от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
Просматривая массив от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
И так далее до предпоследнего элемента.

Содержание

Введение 4

1 Описание метода решения задачи. 5

2 Описание программы. 6

3 Описание методики тестирования программы 9

4 Руководство пользователя по работе с программой 10

Заключение 11

Список использованных источников 12

Приложение А Файл sortirovka.cpp 13

Приложение Б Блок-схема 17

Прикрепленные файлы: 1 файл

курсовая.docx

— 88.14 Кб (Скачать документ)
 
 
 
 
 
 
 
 

Руководство пользователя по работе с программой

  1. Введите максимальное значение элементов массива (AMax). Его значение должно быть из диапазона 1..99.
  2. Введите размер массива (Size). Размер массива не должен превышать 40 элементов.
  3. Выберите способ задания массива – с клавиатуры (нажмите 2) или с помощью датчика случайных чисел (нажмите 1).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Заключение

      В этой работе была реализована демонстрационная  программа сортировки массива методом  «выбора» в среде разработки программного обеспечения Eclipse.

Программа удовлетворяет  поставленным условиям, а именно:

  • Программа сохраняет работоспособность при переписывании в любой каталог
  • Программа содержит комментарии, поясняющие используемые идентификаторы и подпрограммы.

     Описаны метод решения задачи, программа  и используемый алгоритм. Построена  блок-схема программы. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Список  использованной литературы

 
  1. Ананий  В. Левитин Глава 3. Метод  грубой силы: <Сортировка  выбором  // Алгоритмы: введение в разработку и анализ = Introduction to The Design and Analysis of Aigorithms. — М.: «Вильямс», 2006. — С. 143-144. — ISBN ISBN 5-8459-0987-2
  2. Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. — 2-е изд. — М.: Вильямс, 2008. — 1296 с. — ISBN 5-8459-0857-4
  3. Петзольд Ч. Программирование под Windows 95. В двух книгах: BHV - Санкт - Петербург, 2007, silt.
  4. Ричард С.Линкер, Том Арчер. Программирование для Windows 98. Библия разработчика. “Диалектика ” - Москва, 2009.-864 с.: ил.- Парал. тит. англ. Уч.пос.
  5. Джесс Либерти. С++ за 21 день. ”Вильямс” - Москва, 2008.-816 с.: ил. - Парал.тит. англ.
  6. Дэвид Дж. Круглински. Основы С++. “Русская редакция” - Москва, 2007.- 696 с.: ил.
  7. Кэйт Грегори. Использование 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()%AMax;

} 

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

                                 //     and its number on one step

             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(Size,AMax,a);

      } 

      else

      { 

            createMas(Size,AMax,a);    //Creating an array "a" with desired properties

      } 

      cout<<"AMax="<<AMax<<endl;

      cout<<"Size="<<Size<<endl; 

      cout<<"initial array:     "; 

      for (i=0;i<Size;i++)      //output array

                  cout<<a[i]<<" ";

    cout<<endl; 

      selection(Perm,Size,a);    //Sorting array 
 

      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;

} 
 
 
 
 
 
 
 
 
 
 

Приложение  Б

Блок-схема  программы

 

Информация о работе Демонстрационная программа сортировки методом «выбора»