일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Kafka
- 카프카
- 스프링공부
- 기술공부
- JPA 공부
- Axon framework
- 스프링 공부
- K8S
- DDD
- 플러터 공부
- JPA스터디
- JPA공부
- 알고리즘공부
- 플러터 개발
- nestjs공부
- 자바공부
- 프로그래머스
- 스프링부트공부
- nestjs
- JPA
- 스프링
- 코테공부
- 자료구조공부
- 기술면접공부
- 코테준비
- 스프링부트
- Flutter
- nestjs스터디
- querydsl
- JPA예제
- Today
- Total
목록알고리즘 공부 (3)
DevBoi
선택 정렬은, 처음부터 제일 작은값을골라서(큰값이될 수도 있다.) 제일 앞으로 보내고, 그다음부터~ 끝까지 제일 작은값을 찾아서, 그 다음으로 보내는 것이다. 이것도 2중 반복으로 해주면되고, min의 인덱스를 찾아서, 현재 바깥의 index와 min을 스왑해주면 된다. 인덱스가 아니라 밸류로 하게되면, 스왑하기도 어렵고, set으로 되었을때는 swap 이 아니라 제일 최소값으로 값이 전체 복붙이 된다. 1.2중 포문으로 min 찾기 2.min index와 현재 탐색 기준 index 값 swap 하기 https://github.com/Realcheese94/Smith_Algorithm
버블 정렬은 앞에서 부터 1번째와 두번째 두개를 비교해서, 특정 조건에 맞춰서 자리를 바꿔주는 것이다. 이중 for문을 돌려서, 체크를 하고, 두번째 반복문에서는, 제일 마지막에쌓인 데이터는 다시 처리하지 않는다.(처리해도 무방하긴 하다, 다만 낭비가 심하니까, 해당 작업은 하지않는다.) 특수하게 짜는 경우는 내부 반복분에 boolean flag를 두어서, 한번돌았을때, 정렬을 한번 도 하지 않는 경우 즉 swap 이 일어나지 않는 경우는 그냥 끝낸다. 왜냐면, 낭비를 줄이기 위해서....그렇게 하기 이해서는 flag를 내부 반복문 안으로 넣는다. 1. 이중 반복문 (내부 반복문 도는 횟수 max값 -1 씩 감소) 2. 자리바꿈시 flag true , 아니면 break 3. 두개 바꿔야 하면 collec..
Hash 관련되서, 공부를 해보자, hash는 잘알다 싶이, key-value 로 이루어져 저장하는 구조이다. key를 기반으로 address를 찾아, value를 저장한다. 이를 그냥 저장 할수도 있지만 어떻게 하면 좀 더 잘 이해할수 있을 까 방법은 내가 직접 hash를 구현 해보는 방식이다. Hash는 Key기준으로 별도 address를 가져온다. 따라서 이 key에 해당 하는 address주소가 어떤 값일지 모르기 떄문에 사용하는 량보다 많은 양의 크기를 가지고 있을 수 밖에 없다. key 기준으로 단순히 value 에 값을 넣는 것은 중복 문제를 가질수 있다. 완벽하게 key기준으로 address를 가져오는 함수를 짜면 문제가 안생기겠지만, 그러기는 사실상 어렵다, 따라서 chaining 기법을..