목록iOS/Swift로 코테해보기 (14)
k-coding
보호되어 있는 글입니다.
보호되어 있는 글입니다.

Swift 합병 정렬 해보기 (Merge Sort) 오늘은 분할 정복중에서 합병 정렬에 대하여 알아보겠습니다. 합병 정렬이란? 합병 정렬은 이전 포스팅에서 알아보았던 분할 정복중 하나로 마찬가지로 재귀 함수를 이용해서 분할을 합니다. 합병 정렬의 과정은 다음과 같습니다. 1 ) 리스트의 길이가 0 혹은 1이면 이미 정렬된 리스트로 간주합니다. 2 ) 그렇지않은 리스트는 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눕니다. 3 ) 각 부분 리스트를 재귀적으로 합병 정렬을 이용하여 정렬합니다. 4 ) 두 부분 리스트를 다시 합병하여 정렬된 리스트로 만듭니다. 라는 과정을 걸치게 됩니다. 합병 정렬도 퀵 정렬과 마찬가지로 분할 / 정복 / 결합 의 과정을 걸칩니다. 다음과 같은 정렬이 있습니다. ..

Swift 퀵 정렬 해보기 (Quick Sort) 이번엔 퀵 정렬을 알아보도록 하겠습니다. 분할 정복이란? 퀵 정렬을 알기전에 먼저 분할 정복을 간단히 알고 들어가야합니다. 분할 정복은 여러 알고리즘의 기본이 되는 해결방법으로, 엄청나게 크고 방대한 문제를 조금씩 나누어가면서 용이하게 풀 수 있는 단위로 나눈 다음 그것들을 다시 합쳐서 해결하는 개념입니다. 위 그림을 보면 이해가 되다싶이 분할정복은 간단하게 분할하고, 정복하고, 조합하는 과정을 거치면서 문제를 해결하는 방법입니다. 분할: 문제를 더이상 분할할 수 없을 때까지 동일한 유형의 여러 하위 문제로 나눈다. 정복: 가장 작은 단위의 하위 문제를 해결하여 정복한다. 조합: 하위 문제에 대한 결과를 원래 문제에 대한 결과로 조합한다. 퀵 정렬이란? ..

Swift 삽입 정렬 해보기 (Insertion Sort) 이번 포스트에서는 삽입 정렬을 알아보겠습니다. 삽입 정렬이란? 삽입정렬이란 버블, 선택 정렬처럼 데이터를 정렬하기 위한 방법중 하나로, 다음과 같은 과정을 걸치게 됩니다. 두번째 정렬부터 시작하여, 시작된 요소의 앞에있는 요소들과 비교하며 선택된 요소의 값이 더 작다면 위치를 바꾸고, 해당 과정을 자신보다 값이 작은 요소를 만나기 전까지 반복한다. 자 글보다는 쉽게 에시로 알아봅시다. 이전 포스팅과 마찬가지로 아래와 같은 배열이 있습니다. 1. 두 번째 요소인 3부터 시작하여서 앞의 값 4와 비교 -> 4 > 3 이므로 위치 변경 2. 시작 지점인 3이 제일 앞 위치에 도착하여서 루프 종료 3. 세 번째 지점인 9부터 시작 앞의 값 4와 비교 -..

Swift 선택 정렬 해보기 (Selection Sort) 이번에는 버블 정렬에 이어서 선택 정렬에 대해서 알아보겠습니다. 선택 정렬이란? 선택 정렬의 정렬 과정은 다음에 절차를 걸칩니다. 모든 데이터 중에서 가장 작은 값을 찾고, 그 값을 맨 앞 요소에 있는 값과 위치를 바꿉니다. N회차 스캔에는 N번째로 가장 작은 수를 N번째 위치로 바꾸며 계속 반복합니다. 다음과 같은 배열이 있습니다. 이 배열의 선택정렬 과정을 한번 보겠습니다. 1. 가장 작은 수 1 가장 앞 요소 4 위치 변경 2. 두 번째로 작은 수 3 두번째 앞 요소 3 위치 변경 (위치가 같음) 3. 세 번째로 작은 수 4 세번째 앞 요소 9 위치 변경 4. 네 번째로 작은 수 6 네번째 앞 요소 9 위치 변경 5. 1 ~ 4 번의 과..

Swift) 버블 정렬 해보기 (Bubble Sort) 알고리즘에서 버블 정렬을 swift를 사용해서 구현해보겠습니다. 버블정렬이란? 정렬을 가장 간단하게 구현하는 방법중에서 하나로, 인접한 두 데이터를 비교한 후, 앞에 있는 데이터가 뒤에 데이터보다 값이 크다면 자리를 바꿔주는것입니다. 예를 들어서 표현하자면 아래와 같은 데이터가 있을 때 한번의 스캔으로 한번 모든 자리를 정렬시켜줍니다. 1). 4 > 3 -> 순서 변경 2) 4 순서 변경 x 3) 9 > 1 -> 순서 변경 4) 9 > 6 -> 순서 변경 5) 1 ~ 4번을 걸쳐 한번 스캔 자 이렇게 한번의 스캔이 완료됐는데 아직 정렬이 이쁘게 되지 않았습니다. 저희가 원하는 이쁜 데이터 정렬은 이렇게 되어주어야 하는데요 왜냐하면 버블정..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.