알고리즘 3

카데인 알고리즘(kadne`s Algorithm) 연속된 부분 배열 중 최대 합 찾기

카데인 알고리즘배열 내 연속된 부분 배열(subarray) 중에서  가장 최대 합을 찾는 알고리즘이다. DP(Dynamci Programming)를 적용한 방식완탐시 O(N^2) 걸리는 거를 O(N)으로!핵심은 각각의 최대 부분합은 이전 최대 부분합이 반영된 결과값이다. MAX(자기 자신 , 바로 이전의 부분합)  파이썬 코드 및 예제def maxSubArray(nums): max_current = max_global = nums[0] for i in range(1, len(nums)): max_current = max(nums[i], max_current + nums[i]) max_global = max(max_global, max_current) ret..

[알고리즘] 버블 정렬 (bubble sort)

버블 정렬이란? What is bubble sort?이웃한 두 원소의 대소 관계를 비교하여 필요에 따라 교환을 반복하는 알고리즘으로, 단순 교환 정렬이라고도 한다.안정적인 정렬(Stable Sort)이다.그림 1번) 1회전 : 5개의 정렬 아이템들이 있으면 4번만 교환하면 정렬이 완료된다. (n-1번)그림 2번) 2회전 : 3번만 교환하면 정렬이 완료된다 (n-2번)총 n-1번 회전을 돌고 회전이 늘어날 때마다 교환시도 횟수는 1번씩 줄어든다a=[7,4,5,1,3] n = len(a) for i in range(n-1): for j in range(n-1-i): if a[j] > a[j+1]: a[j+1],a[j] = a[j],a[j+1] print(a)패스(pass)정렬하며 ..