"""
Project: MyList.py Package
Author:
Date of last update: 22.10.04
Update list:
-v1.0: added genRandList, printListSample, shufflelist
"""
import random
def genRandList(L, n):
for i in range(n+1):
Rand = random.randint(0, n)
while Rand in L:
Rand = random.randint(0, n)
else:
L.append(Rand)
return L
def printListSample(L, n, per_line, sample_lines):
last_list = n % 20
cnt = 0
for i in range(per_line * sample_lines):
if cnt == per_line * sample_lines:
break
else:
cnt += 1
print("{:7}".format(L[i]), end = ' ')
if cnt % per_line == 0:
print('')
print('\n ---------------------------------------------------------------------------------- ')
cnt = 0
if n % 20 == 0:
for i in range(n-(per_line * sample_lines), n):
if cnt == per_line * sample_lines:
break
else:
cnt += 1
print("{:7}".format(L[i]), end = ' ')
if cnt % per_line == 0:
print('')
else:
for i in range(n-last_list, n):
if cnt == per_line * sample_lines:
break
else:
cnt += 1
print("{:7}".format(L[i]), end = ' ')
if cnt % per_line == 0:
print('')
def shuffleList(L):
random.shuffle(L)
return L
"""
Project: MySortings.py Package
Author:
Date of last update: 22.10.04
Update list:
-v1.0: added selectionSort, mergeSort
"""
def selectionSort(L):
for i in range(len(L) - 1):
index = i
for j in range(i + 1, len(L)):
if L[j] < L[index]:
index = j
L[i], L[index] = L[index], L[i]
def mergeSort(L):
if len(L) > 1:
middle = len(L) // 2
L_left = L[:middle]
L_right = L[middle:]
mergeSort(L_left)
mergeSort(L_right)
i = 0
j = 0
k = 0
while i < len(L_left) and j < len(L_right):
if L_left[i] <= L_right[j]:
L[k] = L_left[i]
i += 1
else:
L[k] = L_right[j]
j += 1
k += 1
while i < len(L_left):
L[k] = L_left[i]
i += 1
k += 1
while j < len(L_right):
L[k] = L_right[j]
j += 1
k += 1
return L
"""
Project: MyMatrix.py Package
Author:
Date of last update: 22.10.04
Update list:
-v1.0: added several Matrix algorithm
"""
def printMtrx(name, M):
print(f"{name} = ")
for y in range(len(M)):
print("{}".format(M[y]))
def sumMtrx(M1, M2):
sum_Mtrx = []
for i in range(len(M1)):
temp=[]
for j in range(len(M1[i])):
temp.append(M1[i][j]+M2[i][j])
sum_Mtrx.append(temp)
return sum_Mtrx
def subMtrx(M1, M2):
sub_Mtrx = []
for i in range(len(M1)):
temp=[]
for j in range(len(M1[i])):
temp.append(M1[i][j]-M2[i][j])
sub_Mtrx.append(temp)
return sub_Mtrx
def mulMtrx(M1, M2):
mul_Mtrx = [[] for i in range(len(M1))]
for i in range(len(M1)):
temp = [0] * len(M2[0])
for j in range(len(M1[0])):
for k in range(len(M2[0])):
temp[k] += M1[i][j] * M2[j][k]
mul_Mtrx[i] = temp
return mul_Mtrx
"""
Project: 22211975_homework6.1
Author:
Date of last update: 22.10.04
Update list:
-v1.0: added user-defined module
"""
import sys
myPyModules_dir = "C:\MyPyPackage\myPyModules"
sys.path.append(myPyModules_dir)
import MyList as ML
import MySortings as MS
L = []
n = 500
ML.genRandList(L, n)
print("정렬 전: ")
ML.printListSample(L, n, 10, 3)
MS.selectionSort(L)
print("\n정렬 후:")
ML.printListSample(L, n, 10, 3)
"""
Project: 22211975_homework6.2
Author:
Date of last update: 22.10.04
Update list:
-v1.0: added user-defined module
"""
import time, sys
sys.path.append("C:/MyPyPackage/myPyModules")
import MyList as ML
import MySortings as MS
while True:
size = int(input("\n리스트의 크기를 입력하세요 (0 입력시 종료): "))
L = []
ML.genRandList(L, size)
print(f"(사이즈 : {size}) 병합 정렬 전 : ")
ML.printListSample(L, size, 10, 2)
t1 = time.time()
MS.mergeSort(L)
t2 = time.time()
print(f"\n(사이즈 : {size}) 병합 정렬 후 : ")
ML.printListSample(L, size, 10, 2)
print(f"{size}개의 난수를 병합 정렬 하는데 {t2-t1} 초가 걸렸습니다.")
ML.shuffleList(L)
print(f"\(사이즈 : {size}) 선택 정렬 전 : ")
ML.printListSample(L, size, 10, 2)
t1 = time.time()
MS.selectionSort(L)
t2 = time.time()
print(f"\n(사이즈 : {size}) 선택 정렬 후 : ")
ML.printListSample(L, size, 10, 2)
print(f"{size}개의 난수를 선택 정렬 하는데 {t2-t1} 초가 걸렸습니다.")
"""
Project: 22211975_homework6.3
Author:
Date of last update: 22.10.04
Update list:
-v1.0: added user-defined module
"""
import sys
sys.path.append("C:/MyPyPackage/myPyModules")
import MyMatrix as MM
A = [[1,2,3,4], [5,6,7,8], [9,10,0,1]]
B = [[1,0,0,0], [0,1,0,0], [0,0,1,1]]
C = [[1,0,0], [0,1,0], [0,0,1], [0,0,0]]
MM.printMtrx("A", A)
MM.printMtrx("B", B)
MM.printMtrx("C", C)
D = MM.addMtrx(A, B)
MM.printMtrx("A + B", D)
E = MM.subMtrx(A, B)
MM.printMtrx("A - B", E)
F = MM.mulMtrx(A, C)
MM.printMtrx("A * C", F)