Tags
- spring์ผ๋ก https ์ ์ฉ
- Quick Sort
- ์์คํ ์ํํธ์จ์ด
- ํจ์คํธ์บ ํผ์คX์ผ๋์
- OpenAPI
- mysql
- datagrip
- spring ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- Java
- node js
- SQL
- Spring
- docker
- DATABASE
- C++
- ๋ฆฌ๋ ์ค ๋ช ๋ น์ด
- java error
- Unity
- ๊ตฌ๊ธ ์์ ๋ก๊ทธ์ธ
- MethodArgumentNotValidException
- GIT
- spring ์์ ๋ก๊ทธ์ธ
- RP 2๊ธฐ
- aligoapi
- merge sort
- Data Structure
- Rp2๊ธฐ
- MAKE US
- @CreatedDate
- SSL
YS's develop story
๋ณํฉ ์ ๋ ฌ (Merge Sort) ์ ๋ฆฌ ๋ณธ๋ฌธ
๐ฉ๐ป ๋ณํฉ ์ ๋ ฌ (Merge Sort) ์ ๋ฆฌ with Python
๐ณ ๋ณํฉ ์ ๋ ฌ (Merge Sort)์ด๋?
- ์ฌ๊ท ์ฉ๋ฒ์ ํ์ฉํ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
- ๋ฆฌ์คํธ๋ฅผ ์ ๋ฐ์ผ๋ก ์๋ผ ๋น์ทํ ํฌ๊ธฐ์ ๋ ๋ฆฌ์คํธ๋ก ๋๋๋๋ค.
- ๊ฐ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๋ณํฉ ์ ๋ ฌ์ ์ด์ฉํด ์ ๋ ฌํฉ๋๋ค.
- ๋ ๋ถ๋ถ ๋ฆฌ์คํธ๋ฅผ ๋ค์ ํ๋์ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ก ๋ณํฉํฉ๋๋ค.
Merge Sort๋ Divide And Conquer์ ๋ํ์ ์ธ ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
๐ฅ ๋ณํฉ ์ ๋ ฌ ๊ตฌํ with Python
def mergeSort(data):
if len(data) <= 1:
return data
medium = len(data) // 2
left = mergeSort(data[:medium])
right = mergeSort(data[medium:])
return merge(left, right)
def merge(left, right):
merged = list()
leftPoint, rightPoint = 0, 0
while len(left) > leftPoint and len(right) > rightPoint:
if left[leftPoint] > right[rightPoint]:
merged.append(right[rightPoint])
rightPoint += 1
else:
merged.append(left[leftPoint])
leftPoint += 1
while len(left) > leftPoint:
merged.append(left[leftPoint])
leftPoint += 1
while len(right) > rightPoint:
merged.append(right[rightPoint])
rightPoint += 1
return merged
๐ช ์๊ฐ ๋ณต์ก๋ ๋ถ์
O(n) * O(log n) = O(n log n)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์ฐจ ํ์, ์ด์ง ํ์ ์ ๋ฆฌ (2) | 2021.08.01 |
---|---|
ํต ์ ๋ ฌ (Quick Sort) ์ ๋ฆฌ (0) | 2021.07.31 |
๋์ ๊ณํ๋ฒ๊ณผ ๋ถํ ์ ๋ณต ์ ๋ฆฌ (0) | 2021.07.30 |
๋ฒ๋ธ ์ ๋ ฌ, ์ ํ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ ์ ๋ฆฌ (0) | 2021.07.29 |
๋์ ๊ณํ๋ฒ๊ณผ ํ๋ก์ด๋ ์๊ณ ๋ฆฌ์ฆ (0) | 2021.04.16 |
Comments