-
Notifications
You must be signed in to change notification settings - Fork 0
/
selectionSort.h
64 lines (53 loc) · 1.81 KB
/
selectionSort.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/************************************************
LAED1 - Trabalho Pratico 2
Alunos:Christian Medeiros Cantarino
João Victor Duarte Mazagão Rodrigues
Matricula:201722040130
201722040378
Descricao do programa:Arquivo principal aonde os algoritmos serão executados
Data:21/11/2018
************************************************/
#include <stdio.h>
#include "item.h"
#ifndef TP_AEDS1_SELECTIONSORT_H
#define TP_AEDS1_SELECTIONSORT_H
/*
* Codigo, retirado do ziviani, e dos slides da professora Nathalia de AEDS1
*
* Codigo foi muito modificado com guias da internet e fiz bagunça com o codigo para tentar fazer o numero de comparações corretas
* e os numeros de trocas corretas. Então não tenho mais certeza de qual codigo foi retirado, e se ao passar pelo programinha de plagio
* acusar algum codigo diferente do Ziviani, com certeza foi ele que me baseei.
*
* Lembrando que a maioria dos meus codigos foram baseado nos codigos do Geeks4Geeks, então provavelmente é de la.
*
* Considerações que não irão alterar a execução do codigo
*
* TipoIndice no livro texto era um inteiro, então estamos considerando um inteiro.
*
*/
void Selecao(TipoItem *A, int n){
// Codigo comentado no final do arquivo
int i;
int j;
int min;
int trocas = 0;
int comparacoes = 0;
TipoItem x;
for (i = 0; i < n -1; i++){
min = i;
x = A[min];
for (j = i+1; j < n ; j++) {
if (A[j].Chave < A[min].Chave) min = j;
comparacoes++;
}
if (x.Chave != A[min].Chave){
trocas++;
x = A[min];
A[min] = A[i];
A[i] = x;
}
}
printf("Comparações: %d \n\n", comparacoes);
printf("Trocas: %d\n\n", trocas);
}
#endif //TP_AEDS1_SELECTIONSORT_H