1. 순위
import random
class Ranking:
def __init__(self,ms,es):
self.midscore = ms
self.endscore = es
self.midrank = [0 for i in range(len(ms))]
self.endrank = [0 for i in range(len(es))]
self.rankdev = [0 for i in range(len(es))]
def setRank(self,ss,rs):
for idx,sco in enumerate(ss):
for score in ss:
if sco < score:
rs[idx] += 1
def setMidRank(self):
self.setRank(self.midscore,self.midrank)
def getMidRank(self):
return self.midrank
def setEndRank(self):
self.setRank(self.endscore,self.endrank)
def getEndRank(self):
return self.endrank
def printing(self):
for a,b in enumerate(self.midrank):
dev = b - self.endrank[a]
if dev > 0 :
dev = '+' + str(abs(dev))
elif dev < 0 :
dev = '-' + str(abs(dev))
else:
dev = '='
print(f'mid rank : {b} \t end rank : {self.endrank[a]} \t dev : {dev}')
midscore = random.sample(range(50,101),20)
endscore = random.sample(range(50,101),20)
answer = Ranking(midscore,endscore)
answer.setMidRank()
print(f'midscor : {midscore}')
print(f'mid rank : {answer.getMidRank()}')
answer.setEndRank()
print(f'endscor : {endscore}')
print(f'end rank : {answer.getEndRank()}')
answer.printing()
2. 버블정렬
나열되어 있는 데이터에서, 처음 인덱스 숫자부터 끝까지 값을 차례대로 옆의 숫자와 비교하면서 큰 숫자를 가장 끝으로 옮겨, 클수록 오른쪽에 가도록 정렬하는 방법이다.
이중 for 문을 돌면서, 인덱스 0과 1 그리고 1과2 ... 이렇게 끝의 값까지 두 개씩 비교하면서 큰 값이면 순서를 바꾸도록 한다. 그렇게 끝까지 돌면 큰 수 일수록 오른쪽에 정렬하게 된다.
3. 삽입정렬
4. 선택정렬