/*
 * =====================================================================================
 *
 *       Filename:  sort_insert.c
 *    Description:  Sortowanie przez wstawianie (insert sort).
 *
 * =====================================================================================
 */
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define MAX 50000

/*  Funkcja losuje 'n' liczb losowych z zakresu 0-1000 i umieszcza je w tablicy 't'. */
float *losuj(float t[], int n)
{
   int i=0;
   while(i<n)
   {
      t[i]=((rand() * 1.0 )/RAND_MAX)*1000;
      i=i+1;
   }
   return t;
}

/* Funkcja wyswietla na terminalu 'n' pierwszych elementow tablicy 't'.  */
void wyswietl(float t[], int n)
{
   int i;
   i=0;
   while(i<n)
   {
      printf("%f\n",t[i]);
      i=i+1;
   }
}



/*  Funkcja sortuje elementy w tablicy algorytmem przez wstawianie (insert sort).  */
void sortowanie_przez_wstawianie(float t[], int n)
{
   int k, i=1;
   float x;

   while(i<n)
   {
      x=t[i];
      k=i;
      while( k> 0 && x < t[k-1] )
      {
         t[k] = t[k-1];
         k = k - 1;
      }
      t[k] = x;
      i=i+1;
   }
}


int main()
{
   float tab[MAX];
   int n ;


   srand(time(0));
   
   printf("n=");
   scanf("%d",&n);
   
   losuj(tab,n);
   sortowanie_przez_wstawianie(tab,n);
   
   printf("Posotrowane liczby:\n");
   wyswietl(tab,n);
   
   return 0;  
}
