Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void quicksort_c(angajat a[], int s, int d, int p, int m)//creem functia de sortare
- {
- int i = s, j = d, k = p, l = m;//capetii "intervalului" pe care il sortam
- char x[35];//elementul pe car eil comparam
- angajat aux;//variabila de interchimbare
- //ordonarea crescatoare
- strcpy(x, a[(s + d) / 2].nume);
- do {
- while (strcmp(a[i].nume, x) < 0) i++;//mergem pana gasim un elem mai mare decat x
- while (strcmp(a[j].nume, x) > 0) j--;//mergem pana unde gasim un elem mai mic decat x
- if (i <= j)
- {
- aux = a[i]; a[i] = a[j]; a[j] = aux;//interchimbam elementele gasite anterior
- i++; j--;//incrementam/decrementam pt a verivica in continuare
- }
- } while (i <= j);//condita de oprire
- if (s < j) quicksort_c(a, s, j, p, m);
- if (d > i) quicksort_c(a, i, d, p, m);
- //ordonarea descrescatoare
- strcpy(x, a[(p + m) / 2].nume);
- do {
- while (strcmp(a[k].nume, x) > 0) k++;
- while (strcmp(a[l].nume, x) < 0) l--;
- if (k <= l)
- {
- aux = a[k]; a[k] = a[l]; a[l] = aux;
- k++; l--;
- }
- } while (k <= l);
- if (p < l) quicksort_c(a, s, d, p, l);
- if (m > k) quicksort_c(a, s, d, k, m);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement