목록알고리즘 (11)
제이슨의 개발이야기
안녕하세요! 오늘은 정렬 방식 중 Bubble Sort 를 코틀린으로 작성해보았습니다! 앞으로 시간이 될 때 마다 각 알고리즘을 코틀린 언어로 한번 작성해보려구 합니다! Bubble Sort 버블 소트 알고리즘 개념 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 아래에서 부터 시작하여 비교하면서 위로 올라가는 방식으로 마치 거품이 위로 올라가는 모습과 유사 하여 버블 소트 라고 합니다! 버블 소트의 장점 과 단점 장점 : 구현이 매우 간단하다 단점 : 순서에 맞지 않은 요소를 인접한 요소와 교환한다 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는 배열에서 모든 다른 요소들과 교환되어야한다 특히 특정요소가 최종 정렬위치에 이미 있는 경우라도 교환이 일어난다 class BubbleSort ..
안녕하세요 요번에는 삽입정렬에 대해서 공부했습니다 삽입정렬이란 input array 를 반으로 나누고 또 다시 반으로 나누고 더 이상 나눌 수 없을 정도로 나누고 나서 합처서 결과를 얻는 방식입니다 앞서 작성했던 Insertion Sort 는 Incremental approach(점진적 접근방식) 이라고 하면 merge sort 는 Divide and Conquer approach 입니다 알고리즘 에 있어서 Divide and Conquer approach 는 정말 중요한 방식이므로 숙지 할 필요가 있습니다!! 분할 정복 알고리즘(Divide and conquer algorithm)이란 그대로 해결할 수 없는 문제를 작은 문제로 분할하여 문제를 해결하는 방법입니다 앞으로 알고리즘을 공부하거나 코딩테스트를..
안녕하세요 저는 요번 삽입 정렬에 대해서 공부를 했습니다 삽입 정렬이란 List 을 읽어 들여 자기 자리에 하나씩 삽입해 가는 방식을 말합니다 흔히 삽입 정렬은 점진적 접근 방식이라고 합니다 Insertion Sort 같은 경우 worst case 인 경우 O(n^2) best case 인 경우 O(n) 입니다 보통 best case 인 경우는 이미 정렬된 리스트인 경우에 해당 됩니다! 삽입정렬의 장점은 1. 안전한 정렬방법 2. 데이터의 수가 적은 경우 다른 정렬 방식에 비해 유리하다 3. 이미 정렬된 데이터를 sort 하는 경우 빠른 결과를 얻을 수 있다 삽입 정렬의 단점 1.타 정렬의 비해 데이터가 많아지면 시간 이 오래걸린다 2.데이터의 이동이 많다 다음은 Insertion sort 의 자바 코드..