def Power(Base, Exponent):
if Exponent == 0 or Base == 0 :
return 1
if Exponent % 2 == 0 :
NewBase = Power(Base, Exponent/2)
return NewBase * NewBase
else:
NewBase = Power(Base, (Exponent-1)/2)
return (NewBase * NewBase) * Base
### 퀵 정렬
def quickSort(a, begin, end):
if begin < end:
p = partition(a , begin, end)
quickSort(a, begin, p-1)
quickSort(a, p+1, end)
### 피봇 알고리즘
def partition (a, begin, end) :
pivot = (begin + end) //2
L = begin
R = end
while L < R :
while(a[L]<a[pivot] and L<R) : L += 1
while(a[R]>=a[pivot] and L<R) : R -= 1
if L < R :
if L == pivot : pivot = R
a[L], a[R] = a[R], a[L]
a[pivot], a[R] = a[R], a[pivot]
return R
'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글
링크드 리스트 (0) | 2020.05.21 |
---|---|
Queue 에대하여 (0) | 2020.04.22 |
SW 백트래킹 미로찾기 (0) | 2020.04.19 |
SW 계산방법 (0) | 2020.04.19 |
트리구조의 모든 집합 구하기 시프트 활용 (0) | 2020.04.09 |