You are on page 1of 5

Problema 1:

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

void quicksort(int a[], int inf,int sup);


int partitie(int a[],int inf,int sup);
void interschimba(int a[],int x,int y);

int main()
{
int n,i,a[50];
printf("Dati nr de elemente: ");
scanf("%d",&n);
printf("Dati elementele \n");
for(i=1;i<=n;i++){
printf("a[%d]= ", i);
scanf("%d",&a[i]);
}
quicksort(a,1,n);
printf("Elementele sortate: \n");
for(i=1;i<=n;i++)
printf("%d \n",a[i]);
return 0;
}
void quicksort(int a[], int inf,int sup)
{
int q;
if(inf<sup ){
q=partitie(a,inf,sup);
quicksort(a,inf,q);
quicksort(a,q+1,sup);
}
}
int partitie(int a[],int inf,int sup)
{
int x,i,j;
x=a[inf];
i=inf-1;
j=sup+1;
while(1){
do{
j=j-1;
}
while(a[j]>x);
do{
i=i+1;
}
while(a[i]<x);
if(i<j)
interschimba(a,i,j);
else
return j;
}
}

void interschimba(int a[],int x,int y)


{
int temp;
temp=a[x];
a[x]=a[y];
a[y]=temp;
}
Problema 2:
#include <stdio.h>
#include <string.h>
struct student{
char nume[10], prenume[10];
int nota;
};
void sch(struct student a[], int x, int y);
void selSort(struct student a[], int n);
int main()
{
int n, i;
struct student a[50];
printf("Dati nr de studenti: ");
scanf("%d",&n);
printf("\n Datele studentilor \n");
for( i = 0; i < n; ++i ){
printf("\n student[%d] \n", i);
printf("nume = "); scanf("%s", &a[i].nume);
printf("prenume = "); scanf("%s", &a[i].prenume);
printf("nota exam = "); scanf("%d", &a[i].nota);
}
selSort(a, n);
printf("\n DATELE SORTATE\n");
for( i = 0; i < n; ++i ){
printf("\n student[%d] \n", i);
printf("nume = %s \n", a[i].nume);
printf("prenume = %s \n", a[i].prenume);
printf("nota examen = %d \n", a[i].nota);
}
return 0;
}
void sch(struct student a[], int x, int y) {
struct student tmp = a[x];
a[x] = a[y];
a[y] = tmp;
}
void selSort(struct student a[], int n) {
int i, j, minIndex;
for (i = 0; i < n - 1; i++) {
minIndex = i;
for (j = i + 1; j < n; j++)
if (strcmp(a[j].nume, a[minIndex].nume) < 0 )
minIndex = j;
else if(strcmp(a[j].nume,a[minIndex].nume)==0)
if(strcmp(a[j].prenume,a[minIndex].prenume)<0)
minIndex=j;
if (minIndex != i)
sch(a, i, minIndex);
}
}

You might also like