Você está na página 1de 3

Ali Mohamad Termos

Trabalho Luciano
21-08-2023

Bubble Sort
void BubbleSort(int *Valor, int numero) {
NN int i, cont, aux, fim = numero;
do {
cont = 0;
for (i = 0; i < fim - 1; i++) {
if (Valor[i] > Valor[i + 1]) {
aux = Valor[i];
Valor[i] = Valor[i + 1];
Valor[i + 1] = aux;
cont = i;
}
}
fim--;
} while (cont != 0);
}

int main() {
int n, v[100];
printf("Digite o tamanho:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("Digite o valor %d: ", i + 1);
scanf("%d", &v[i]);
}
BubbleSort(v, n);
for (int i = 0; i < n; i++) {
printf("%d ", v[i]);
}
return 0;
}

Selection Sort
void SelectionSort(int *Valor, int numero) {
int i, j, menor, troca;
for (i = 0; i < numero - 1; i++) {
menor = i;
for(j = i+1; j < numero; j++){
if(Valor[j] < Valor[menor]){
menor = j;
}
}
if(i != menor){
troca = Valor[i];
Valor[i] = Valor[menor];
Valor[menor] = troca;
}
}
}
int main() {
int n, v[100];
printf("Digite o tamanho:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("Digite o valor %d: ", i + 1);
scanf("%d", &v[i]);
}
SelectionSort(v, n);
for (int i = 0; i < n; i++) {
printf("%d ", v[i]);
}
return 0;
}

Merge Sort
void merge(int *Valor, int inicio, int meio, int fim){
int *temp, p1, p2, tamanho, i, j, k;
int fim1 = 0, fim2 = 0;
tamanho = fim - inicio + 1;
p1 = inicio;
p2 = meio + 1;
temp = (int *) malloc(tamanho * sizeof(int));
if(temp != NULL){
for(i=0; i < tamanho; i++){
if(!fim1 && !fim2){
if(Valor[p1] < Valor[p2]){
temp[i] = Valor[p1++];
}
else{
temp[i] = Valor[p2++];
}
if (p1 > meio)
fim1 = 1;
if(p2 > fim)
fim2 = 1;
}
else{
if(!fim1){
temp[i] = Valor[p1++];
}
else{
temp[i] = Valor[p2++];
}
}
}
for(j=0, k=inicio; j < tamanho; j++, k++){
Valor[k] = temp[j];
}
}
free(temp);
}
void MergeSort(int *Valor, int inicio, int fim) {
int meio;
if(inicio < fim){
meio = floor((inicio + fim)/2);
MergeSort(Valor, inicio, meio);
MergeSort(Valor, meio + 1, fim);
merge(Valor, inicio, meio, fim);
}
}

int main() {
int n;
printf("Digite o tamanho:");
scanf("%d", &n);
int *v = (int *)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
printf("Digite o %d° número: ", i + 1);
scanf("%d", &v[i]);
}
MergeSort(v, 0, n - 1);
for (int i = 0; i < n; i++) {
printf("%d ", v[i]);
}
free(v);
return 0;
}

Insertion Sort
void InsertionSort(int *Valor, int numero) {
int i, j, aux;
for (i = 1; i < numero; i++) {
aux = Valor[i];
for(j = i; (j > 0) && (aux < Valor[j-1]); j--){
Valor[j] = Valor[j-1];
}
Valor[j] = aux;
}
}

int main() {
int n, v[100];
printf("Digite o tamanho:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("Digite o valor %d: ", i + 1);
scanf("%d", &v[i]);
}
InsertionSort(v, n);
for (int i = 0; i < n; i++) {
printf("%d ", v[i]);
}
return 0;
}

Você também pode gostar