[python] 병합정렬을 이용한 알고리즘 응용 문제


[python] 병합정렬을 이용한 알고리즘 응용 문제

문제 1 : n개의 임의의 정수로 이루어진 리스트가 주어졌을 때 k번째로 작은 항목을 찾는 알고리즘을 구현하라. 단, 알고리즘의 시간복잡도는 O(nlog(n))이어야 한다. # nlon(n)이면 병합정렬을 이용하자. # middle 값 생성 def kfind(n,k): import random alist=random.sample(range(100),n) print(alist) middle = len(alist)//2 for i in range(0,middle): if alist[i] > alist[middle+i]: alist[i], alist[middle+i] = alist[middle+i], alist[i] for i in range(1,middle): if alist[0] > alist[i]: alist[0], alist[i] = alist[i], alist[0] if alist[middle] > alist[middle+i] : alist[middle], alist[middle...


#nlogn #python #병합정렬 #시간복잡도 #알고리즘

원문링크 : [python] 병합정렬을 이용한 알고리즘 응용 문제