Методы сортировки и их примеры

Автор работы: Пользователь скрыл имя, 18 Декабря 2013 в 11:04, курсовая работа

Описание работы

Предмет исследования - современные методы разработки программ таких, как объектно-ориентированное программирование и визуальное проектирование, а также структурное и модульное программирование. Цель курсовой работы - систематизация, углубление и активное применение знаний по системному программированию, закрепление знаний, полученных в лекционном курсе, а также на практических и лабораторных занятиях. Метод исследования - изучение литературы, составление и отладка программ на компьютере. Программа типа “Sort” может использоваться, как программа, предназначенная для сортировки элементов массива.

Файлы: 1 файл

Предмет исследования.docx

— 31.89 Кб (Скачать файл)

 

}

 

//при выборе сортировки Shell

 

void CSortView::OnShell()

 

{

 

          //объявление локальных переменных

 

          sort=true;

 

          metod=2;

 

          int ii,t=5,i,j, k, s, m, h[6], x;

 

          count=0;

 

          for(ii=0;ii<kol;ii++)

 

          {

 

                   mas2[ii]=mas[ii];

 

          }

 

                   

 

    h[1]=9; h[2]=5; h[3]=3; h[4]=2; h[5]=1;

 

                 

 

////////////////////////////////////////////

 

//АЛГОРИТМ

 

                   for(m=1;m<=t;m++)

 

                   {

 

                   k=h[m];

 

                             s=-k;

 

                  for(i=k+1; i<=kol;i++)

 

                             {

 

                                      x=mas2[i];

 

                                      j=i-k;

 

                                            

 

                                      while (x<mas2[j] && j<kol)

 

                                      {

 

                                                mas2[j+k]=mas2[j];

 

                                                j=j-k;

 

                                      }

 

      

 

                                      mas2[j+k]=x;

 

                                      count++;

 

                             }

 

        }

 

                   x=mas2[0];

 

                   mas2[0]=mas2[1];

 

                   mas2[1]=x;

 

////////////////////////////////////////////

 

                 

 

                   Invalidate(true);//перерисовка содержимого  окна

 

}

 

//при выборе сортировки Bubble

 

void CSortView::OnPuzirok()

 

{

 

          //объявление локальных переменных

 

          int dop;

 

          bool end;

 

          count=0;

 

          sort=true;

 

          metod=3;

 

          int i, j;

 

          for(i=0;i<kol;i++)

 

          {

 

                   mas2[i]=mas[i];

 

          }

 

////////////////////////////////////////////

 

//АЛГОРИТМ

 

          for(i=0;i<kol;i++)

 

          {

 

                   end=true;

 

                   for(j=i+1;j<kol;j++)

 

                   {

 

                             if(mas2[i]>mas2[j])

 

                             {

 

                                      dop=mas2[i];

 

                                      mas2[i]=mas2[j];

 

                                      mas2[j]=dop;

 

                                      end=false;

 

                                      count++;

 

                             }

 

                   }

 

                   if(end==true) break;

 

          }

 

/////////////////////////////////////////////

 

          Invalidate(true);//перерисовка содержимого  окна

 

}

 

//функция быстрого поиска

 

void CSortView::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 CSortView::part(int l, int r, int &i, int &j)

 

{

 

          int x, dop;

 

 

 

          i=l;

 

          j=r;

 

          x=(l+r)/2;

 

 

 

                   do

 

                   {

 

                   while(mas2[i]<mas2[x])

 

                             i++;

 

                   while(mas2[j]>mas2[x])

 

                             j--;

 

                             if(i<=j)

 

                             {

 

                                      dop=mas2[i];

 

                                      mas2[i]=mas2[j];

 

                                      mas2[j]=dop;

 

 

 

                                      i++;j--;count++;

 

                             }

 

                   }

 

                   while(i<j);

 

}


Информация о работе Методы сортировки и их примеры