Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
28.06.2014
Размер:
2.05 Кб
Скачать
//---------------------------------------------------------------------------


#pragma hdrstop

#include "Unit2.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)
struct tip
{int y[100];
 int key;
};
void Sing (struct tip x[], int n)
{
 struct tip t, tt;
 int h, i, j, k, L, m, ij;
 int IL[26], IU[26];

 m=0; i=0; h=n-1; j=h;
 do
 {
       ij = (i + j)/2;
       t=x[ij];
       k=i;
       L=j;
       if (x[i].key > t.key)
        {
         x[ij] = x[i];
         x[i] = t;
         t = x[ij];
        }
       if (x[j].key < t.key)
        {
         x[ij] = x[j];
         x[j] = t;
         t = x[ij];
         if (x[i].key > t.key)
          {
           x[ij] = x[i];
           x[i] = t;
           t = x[ij];
          }
         }
   do
   {
     do  {L--;  }
     while (x[L].key > t.key);
     do {k++; }
     while (x[k].key < t.key);
     if (k < L)
      {
       tt = x[L];
       x[L] = x[k];
       x[k] = tt;
      }
   }while (k <= L);
     if (L-i > j-k)
      {if (L-i > 9)
        {
         IL[m] = i;
         IU[m] = L;
         m++;
        }
       i = k;
      }
     else
      {
       if (j-k > 9)
       {
       IL[m] = k;
       IU[m] = j;
       m++;
       }
       j = L;
      }
     if (j-i < 10)
      {
      m--;
      if (m < 0)
       break;
      i = IL[m];
         j = IU[m];
      }
  }
  while (m>=0);

          tt = x[h];
          x[h].key = 10000000;
          for (j = h-2;j>=0;j--)
           {
            k = j+1;
            t = x[j];
            if (x[k].key < t.key)
             {
              do
               {x[k-1] = x[k];
                k++;
               }      while (x[k].key < t.key);
              x[k-1] = t;
             }
           }
          if (h>0)
           while (tt.key < x[h-1].key)
            {
             x[h] = x[h-1];
             h--;
            }
          x[h] = tt;
 return;
}
Соседние файлы в папке ЛЗ3
  • #
    28.06.2014131.07 Кб15Project1.tds
  • #
    28.06.20143.61 Кб14Project1.~bpr
  • #
    28.06.20141.63 Кб14Unit1.cpp
  • #
    28.06.201426.35 Кб14Unit1.obj
  • #
    28.06.20141.88 Кб14Unit1.~cpp
  • #
    28.06.20142.05 Кб15Unit2.cpp
  • #
    28.06.2014236 б15Unit2.h
  • #
    28.06.20142.38 Кб14Unit2.obj
  • #
    28.06.20142.06 Кб14Unit2.~cpp
  • #
    28.06.2014236 б15Unit2.~h
  • #
    28.06.201420.99 Кб16Книга1.xls