Share the joy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Acum ceva timp v-am vorbit despre Selection sort, astazi insa va voi prezenta Shell Sort-ul, care este un program care face exact acelasi lucru ca predecesorul sau insa in cu totul si cu totul alta metoda. Aceasta metoda este redata in video-ul de mai jos si programul se va regasi dupa acesta.

#include <stdio.h>
#include <conio.h>
int v[50];
int n = -1;

void printArray(int *array, int size);
void shellSort(int *array, int size);

int main()
{
printf(“Shell sort Console-C implementation\n\n”);
FILE *in;
in = fopen(“in.txt”, “r”);

while(!feof(in))
{
fscanf(in, “%d “, &v[++n]);
}

printf(“Unsorted array:\n”);
printArray(v, n);
shellSort(v, n);
printf(“Sorted array:\n”);
printArray(v, n);
printf(“\nPress any key to continue . . .”);
getch();
fclose(in);

return 0;
}

void printArray(int *array, int size)
{
int i;

for(i = 0; i <= n; i++)
{
printf(“%d “, array[i]);
}
printf(“\n\n”);
}

void shellSort(int *array, int size)
{
int i, j, k;

for(i = size / 2; i > 0; i/= 2)
{
for(j = i; j < size; j++)
{
for(k = j – 1; k >= 0; k -= i)
{
if(array[k + 1] >= array[k])
{
break;
}
else
{
int aux = array[k];
array[k] = array[k + i];
array[k + i] = aux;
}
}
}
}
}

Pentru a va functiona programul trebuie sa creati in folderul destinat acestuia un fisier in.txt din care programul sa poata citi numerele pe care le are de ordonat. Daca nu faceti acest lucru programul va va raporta eroare si nu va porni.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>