25 februarie 2010

Sortare Bubble

Este cea mai simpla metoda de sortare, al carei principiu suna in felul urmator: se trece in mod repetat prin lista, comparand elementele doua cate doua. In cazul in care ele nu respecta relatia de ordine sunt inversate si se trece mai departe. Iteratia se opreste cand in urma unui ciclu complet nu s-au mai facut inversari de elemente.

In C, codul este urmatorul:

#include "stdio.h"
#include "stdlib.h"

int main () {

int i, n;
scanf ("%d", &n);
int *x = (int *) malloc (n*sizeof(int));
for (i=0 ; i < n ; i++)
x[i]= rand()%100;
int sch,aux; // sch - variabila 1 daca au avut loc interschimburi, 0 altfel
do {
sch=0;
for(i=0; i < n-1; i++)
if(x[i] > x[i+1]) {
aux=x[i]; x[i]=x[i+1]; x[i+1]=aux; sch=1;}
} while (sch==1);

for (i=0; i < n; i++)
printf ("%d ", x[i]);
return 0;
}

Niciun comentariu: