본문 바로가기

오늘은 뭘 배울까?68

합병 정렬(=병합 정렬) 이란? 1. 합병 정렬 1-1. 합병 정렬? 병합 정렬? 1-2. 합병 정렬이란? 1-3. 움짤로 보는 예시 1-4. 글로 보는 예시 1-5. 소스코드 1-6. 합병 정렬의 시간 복잡도 1-7. 합병 정렬은 얼마나 빠를까? 1. 합병 정렬 1-1. 합병 정렬? 병합 정렬? 처음에 이름이 굉장히 헷갈렸다. (합병이 병합이고 병합이 합병 아닌가...? 🥴) 결론부터 말하자면 둘 다 맞는 말이다. 둘 다 사용해도 된다. 개인적으로 궁금해서 둘의 그 미묘한 차이를 알고 싶어 알아봤는데 합병: A와 B가 합쳐져 C가 만들어짐 병합: A가 B의 일부가 되거나 B가 A의 일부가 됨 이 블로거에 의하면 위와 같은 차이가 있다고 한다. 만약 이게 사실이라면 음,,, 나는 합병 정렬이 오늘 배울 내용과 더 적합하지 않을까..?라.. 2021. 5. 30.
Binding Adapter(바인딩 어댑터)를 배워보자! 1. Binding Adapter 1-1. Binding Adapter란? 2. 사용법 2-1. Adapter 2-2. Layout 2-3. Activity 3. Binding Adapter의 목적 4. 예제 1. Binding Adapter 1-1. Binding Adapter란? 뷰의 속성을 설정하는 메서드는 여러 가지가 있다. 당장 텍스트 뷰만 해도 텍스트 크기, 텍스트 컬러, 높이, 여백 등등 무수히 많은 옵션들이 있으니 말이다. 하. 지. 만. 그럼에도 불구하고 내가 원하는 기능의 메서드가 없다면 어떻게 해야 할까? 액티비티에서 내가 원하는 메서드를 만들어 사용하듯이 레이아웃에서도 내가 원하는 메서드를 만들어 사용할 수는 없을까? 결론부터 말하자면 할 수 있다. Binding Adapter를 사.. 2021. 5. 29.
퀵 정렬이란? 1. 퀵 정렬 1-1. 퀵 정렬이란? 1-2. 예시 1-3. 소스코드 1-4. 퀵 정렬의 시간 복잡도 1-5. 퀵 정렬은 얼마나 빠를까? 1. 퀵 정렬 1-1. 퀵 정렬이란? 이름값 하는 정렬 방법이다. 평균적으로 꽤나 빠른 속도를 보여준다. 여기서 평균적으로라고 한 이유는 [목차 1-4]에서 설명할 예정이다. 아무튼 이렇게 빠르게 정렬할 수 있는 이유는 분할 정복 방법을 사용했기 때문이다. 분할 정복 방법이란 큰 문제를 작은 문제로 쪼개어 문제를 해결하는 방식이다. 한 번에 먹기에 너무 큰 음식이 있으면 잘라먹듯이 한 번에 들기에 너무 무거운 짐이 있으면 나눠 들듯이 큰 문제를 해결하기 쉬운 작은 문제로 쪼개자는 것이다. 퀵 정렬은 이 개념을 도입한 방법인데 어떻게 정렬되는 건지 다음 목차에서 알아보자.. 2021. 5. 27.
View Binding과 Data Binding 예제 1. 들어가기에 앞서 2. 예제 2-1. 가장 기본적인 코드 2-2. View Binding 2-3. View Binding + ViewModel 2-4. View Binding + ViewModel + LiveData 2-5. Data Binding 2-6. Data Binding + ViewModel 2-7. Data Binding + ViewModel + LiveData 2-8. 깃허브 링크 1. 들어가기에 앞서 뷰 바인딩(View Binding) 데이터 바인딩(Data Binding) 뷰 모델(View Model) 라이브 데이터(LiveData) 이 게시글은 위 4개의 개념이 모두 잡혀있다는 가정하에 따로 자세한 설명을 하지 않을 예정이다. 조합별로 어떻게 사용하는지 어떤 게 좋은지 비교 및 연습.. 2021. 5. 18.
셸 정렬이란? 1. 셸 정렬 1-1. 셸 정렬이란? 1-2. 예시 1-3. 소스코드 1-4. 셸 정렬의 시간 복잡도 1-5. 셸 정렬은 삽입 정렬보다 얼마나 빠를까? 1. 셸 정렬 1-1. 셸 정렬이란? 셸 정렬은 삽입 정렬의 개선판 정도로 생각할 수 있다. 삽입 정렬은 거의 정렬되어 있는 수열이 주어졌을 때 좋은 효율을 보여준다는 장점이 있었지만 그 반대로 역순에 가까운 수열이 주어지면 그만큼 좋지 못한 효율을 보여주었다. 그래서 옛날에 도널스 셸이라는 사람이 "흠.. 수열을 어느 정도 정렬되게 바꾼 다음 삽입 정렬을 쓰면 좋지 않을까?" 해서 나온 게 셸 정렬이다. 실제로도 셸 정렬을 할 때 삽입 정렬을 사용한다. 그러니 삽입 정렬을 아직 모른다면 먼저 배우고 오자. 1-2. 예시 위와 같이 내림차순에 가까운 수열.. 2021. 5. 15.