Скачиваний:
33
Добавлен:
10.05.2014
Размер:
1.03 Кб
Скачать
// Быстрая
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>

#define n 20

using namespace std;

int ass, compr, z, h;
int mass[n];

void input(void)
{
     int i;
     for (i=0; i<n; i++)
     {
         mass[i]=100-i;//100+100*sin(i);
     }
}

void output(void)
{
     int i;
     for (i=0; i<n; i++)
     {
         cout << mass[i] << " ";
     }
     cout << "\n";
}

void qs(int l, int r)
{
     int i,j,x,w;
     i=l; j=r;
     x=mass[(l+r)/2];
     ass++;
     do
     {
		 compr++;
         while (mass[i]<x) {compr++; i++;}
         while (x<mass[j]) {compr++; j--;}
         if (i<=j)
         {
                  w=mass[i];
                  mass[i]=mass[j];
                  mass[j]=w;
                  ass=ass+3;
                  i++; j--;
         }
     }
     while (i<j);
     if (l<j) qs(l,j);
     if (i<r) qs(i,r);
}


int main(void)
{
    input();
    output();
    qs(0,n);
    cout << "\n";
    output();
    cout<<"ass "<<ass<<endl;
    cout<<"compr="<<compr;
}
Соседние файлы в папке 1