정렬

Algorithm/알고리즘 개념

[알고리즘] 삽입 정렬(insertion sort)

삽입 정렬이란? 삽입 정렬: 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 매 순서마다 해당 원소를 삽입할 수 있는 위치를 찾아 해당 위치에 삽입한다. key값은 2번째 인덱스부터 시작되며, key값이 자료의 길이만큼 이동했을 때 정렬된다. 1) 정렬되지 않은 배열에서 2번째 인덱스를 key값으로 잡는다. 2) 앞의 인덱스와 비교하여 교환한다. 3) 2번째를 key값으로 잡았기 때문에 다음, 3번째 인덱스를 key값으로 잡는다. 4) 마찬가지로 앞의 인덱스들과 비교하여 교환한다. 시간복잡도 최선의 경우 O(n) 시간복잡도를 가지게 되지만, 최악의 경우 O(n^2)이 될 수 있다. JAVA CODE public cl..

Algorithm/알고리즘 개념

[알고리즘] 버블 정렬(bubble sort)

버블 정렬이란? 버블 정렬(거품 정렬): 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하여 정렬하는 알고리즘이다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 이를 양방향으로 번갈아 수행하면 칵테일 정렬이 된다. 1) 그림과 같이 정렬되지 않은 배열이 있다고 가정하자. 2) 맨 앞부터 비교를 하게 된다. 그럼 7과 2를 비교하게 되는데, 7이 더 크기 때문에 두 수를 바꾼다. * 버블 정렬을 동그라미 표시(거품)를 하며 바꾼다는 의미로 외웠음 3) 2와 7을 바꾼 뒤 한 칸 앞으로 가서 다시 7과 0을 비교한다. 4) 마찬가지로 7이 더 크기 때문에 두 원소를 교환한다. 이런 식으로 제일 큰 수 부터 정렬하는 방법이 bubble sort ..