#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define LENGTH 10
#define MAX    100

int data = 0;

int work(void)
{
   return (++data);
}

void reset(void)
{
   data = 0;
}

void shell_sort(int data[], int length)
{
   int gap;
   int i; int j;
   int temp = 00;
   for(gap=length/2;gap>0;gap /= 2)
   {
      for(i=gap;i<length;i++)
      {
         for(j=i-gap;j>=0 && data[j]>data[j+gap];j-=gap)
         {
            temp = data[j];
            data[j] = data[j+gap];
            data[j+gap] = temp;
         }
      }
   }
}

int main(int argc, char* argv[])
{

   int i = 0;
   int j = 0;
   int n = 0;
   int param = 0;
   int result = 0;

   if(argc==2)
   {
      param = atoi(argv[1]);
   }

   n = param;

   for(i=0;i<n;i++)
   {
      result = work();
   }

   printf("work result=%d\n",result);
   reset();

   for(i=0;i<n;i++)
   {
      for(i=0;i<n;i++)
      {
         result = work();
      }
   }

   printf("work result=%d\n",result);
   reset();

   for(i=0;i<n;i++)
   {
      for(j=0;j<n;j++)
      {
         result = work();
      }
   }

   printf("work result=%d\n",result);
   reset();

   for(i=0;i<n;i++)
   {
      result = work();
      n /= 2;
   }

   printf("work result=%d\n",result);
   reset();

   n = param;

   for(i=0;i<n;i++)
   {
      if(0==i%2)
      {
         result = work();
      }else{
         for(j=0;j<n;j++)
         {
            result = work();
         }
      }
   }

   printf("work result=%d\n",result);
   reset();

   return 0;
}
