Skip to content

Commit 3ff7c3d

Browse files
committed
Changes to sorting
1 parent bcfb2ed commit 3ff7c3d

File tree

4 files changed

+78
-64
lines changed

4 files changed

+78
-64
lines changed

main.py

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,41 @@
33
from src.dev.ordenacao.ordenacao_quicksort import *
44
from src.dev.utils.leitor_csv import *
55
from src.dev.utils.log import Log
6-
6+
from src.dev.visual.view import *
7+
from src.dev.utils.ordenacao import *
78

89
class Principal:
910

10-
def start_insert(self):
11-
# Ordenacao por insercao
12-
lista_desordenada = Csv().ler_csv("Entrada1.csv")
13-
Insert().ordenacao_insercao(lista_desordenada)
14-
15-
lista_desordenada = Csv().ler_csv("Entrada2.csv")
16-
Insert().ordenacao_insercao(lista_desordenada)
17-
18-
19-
def start_bubbleSort(self):
20-
# Ordenação por Bubble Sort
21-
lista_desordenada = Csv().ler_csv("Entrada1.csv")
22-
bubbleSort(lista_desordenada)
23-
24-
# Ordenação por Bubble Sort
25-
lista_desordenada = Csv().ler_csv("Entrada2.csv")
26-
bubbleSort(lista_desordenada)
27-
28-
29-
def start_quickSort(self):
30-
lista_desordenada = Csv().ler_csv("Entrada1.csv")
31-
QuickSort(lista_desordenada)
32-
33-
lista_desordenada = Csv().ler_csv("Entrada2.csv")
34-
QuickSort(lista_desordenada)
35-
36-
11+
def __init__(self):
12+
self.start_order = Ordenacao()
13+
3714
def start_ordering(self):
3815
Log().escrever("Iniciando o processo de ordenação...")
3916

40-
self.start_insert()
41-
self.start_bubbleSort()
42-
self.start_quickSort()
17+
self.start_order.start_insert()
18+
self.start_order.start_bubbleSort()
19+
self.start_order.start_quickSort()
4320

4421
Log().escrever("Finalizado o processo de ordenação\n")
4522

4623

47-
4824
if __name__ == '__main__':
49-
Principal().start_ordering()
25+
26+
initi = Principal()
27+
initi.start_ordering()
28+
29+
data = [
30+
31+
['Inserção', 'Comparações', initi.start_order.get_comparacoes_insercao()[0], initi.start_order.get_comparacoes_insercao()[1]],
32+
['Inserção', 'Movimentações', initi.start_order.get_movimentacoes_insercao()[0], initi.start_order.get_movimentacoes_insercao()[1]],
33+
['BubbleSort', 'Comparações', initi.start_order.get_comparacoes_bubblesort()[0], initi.start_order.get_comparacoes_bubblesort()[1]],
34+
['BubbleSort', 'Movimentações', initi.start_order.get_movimentacoes_bubblesort()[0], initi.start_order.get_movimentacoes_bubblesort()[1]],
35+
['QuickSort', 'Comparações', initi.start_order.get_comparacoes()[0], initi.start_order.get_comparacoes()[1]],
36+
['QuickSort', 'Movimentações', initi.start_order.get_movimentacoes()[0], initi.start_order.get_movimentacoes()[1]]
37+
]
38+
39+
View().createView(data)
40+
5041

5142

5243

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
11
from src.dev.utils.log import Log
22

3-
def bubbleSort(alist):
4-
5-
comparacoes = 0
6-
movimentacao = 0
7-
8-
for passnum in range(len(alist)-1,0,-1):
9-
for i in range(passnum):
10-
comparacoes += 1
11-
12-
if alist[i]>alist[i+1]:
13-
temp = alist[i]
3+
class BubbleSort:
4+
5+
def __init__(self):
6+
self._comparacoes = 0
7+
self._movimentacoes = 0
8+
9+
def bubbleSort(self, alist):
10+
11+
for passnum in range(len(alist)-1,0,-1):
12+
for i in range(passnum):
1413

15-
alist[i] = alist[i+1]
16-
movimentacao += 1
17-
18-
alist[i+1] = temp
19-
movimentacao += 1
20-
21-
texto = '''Resultados do Bubble Sort:
22-
\n\t\tComparacoes: {}
23-
\n\t\tMovimentacoes: {}
24-
'''.format(comparacoes, movimentacao)
25-
26-
Log().escrever(texto)
14+
self._comparacoes += 1
15+
if alist[i]>alist[i+1]:
16+
temp = alist[i]
17+
18+
alist[i] = alist[i+1]
19+
self._movimentacoes += 1
20+
21+
alist[i+1] = temp
22+
self._movimentacoes += 1
23+
24+
texto = '''Resultados do Bubble Sort:
25+
\n\t\tComparacoes: {}
26+
\n\t\tMovimentacoes: {}
27+
'''.format(self._comparacoes, self._movimentacoes)
28+
29+
Log().escrever(texto)
30+
31+
32+
def get_comparacoes(self):
33+
return self._comparacoes
34+
35+
def get_movimentacoes(self):
36+
return self._movimentacoes

src/dev/ordenacao/ordenacao_insercao.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,40 @@
22

33
class Insert:
44

5+
def __init__(self):
6+
self._comparacao = 0
7+
self._movimentacao = 0
8+
59
def ordenacao_insercao(self, A):
610
n = len(A)
711

8-
comparacao = 0
9-
movimentacao = 0
10-
1112
# Percorre o arranjo A.
1213
for j in range(1, n):
1314
chave = A[j]
1415
i = j - 1
1516

16-
comparacao += 1
17+
self._comparacao += 1
1718

1819
# Insere o elemento A[j] na posição correta.
1920
while i >= 0 and A[i] > chave:
2021
A[i + 1] = A[i]
2122
i = i - 1
22-
movimentacao += 1
23-
comparacao += 1
23+
self._movimentacao += 1
24+
self._comparacao += 1
2425

2526

2627
A[i + 1] = chave
27-
movimentacao += 1
28+
self._movimentacao += 1
2829

2930
texto = '''Resultados da Inserção:
3031
\n\t\tComparacoes: {}
3132
\n\t\tMovimentacoes: {}
32-
'''.format(comparacao, movimentacao)
33+
'''.format(self._comparacao, self._movimentacao)
3334

3435
Log().escrever(texto)
36+
37+
def get_comparacoes(self):
38+
return self._comparacao
39+
40+
def get_movimentacoes(self):
41+
return self._movimentacao

src/dev/ordenacao/ordenacao_quicksort.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@ def __init__(self, alist):
1515
Log().escrever(texto)
1616

1717

18+
def get_comparacoes(self):
19+
return self._comparacoes
20+
21+
def get_movimentacoes(self):
22+
return self._movimentacoes
23+
1824
def quickSort(self, alist):
1925
self.quickSortHelper(alist,0,len(alist)-1, self._comparacoes, self._movimentacoes)
2026

0 commit comments

Comments
 (0)