목록알고리즘 (3)
개발박사가 되고싶은 척척학사
거품정렬 : 선택정렬과 유사한 알고리즘으로, 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘 과정(오름차순 기준) 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, … 이런 식으로 비교하여 조건에 맞지 않는다면 서로 교환 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 원소는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두 번째 원소까지는 정렬에서 제외됩니다. 이렇게 정렬을 1회전 수행할 때마다 정렬에서 제외되는 데이터가 하나씩 늘어납니다. Java Code - 오름차순 기준 void bubbleSort(int[] arr) { int temp = 0; fo..
계산복잡도 : 어떤 알고리즘이 문제를 풀기위해 해야하는 계산이 얼마나 복잡한지를 나타낸 정도를 말한다. 즉, 알고리즘의 성능, 효율을 측정하기 위한 것이다. 계산 복잡도는 특별한 언급이 없다면 시간 복잡도를 의미하는 것이지만 본래 계산 복잡도는 시간 복잡도(time complexity), 공간 복잡도(space complexity)로 두가지가 있다. 계산 복잡도를 표현하는 방법에는 여러가지가 있는데 그 중 대표적인 표기법은 대문자 O 표기법(Big-O 표기법) 이다. 시간 복잡도 : 어떤 알고리즘을 수행하는 데 얼마나 오랜 시간이 걸리는지 분석한 것. O(n) : 알고리즘에 필요한 연산 횟수가 입력 크기 n과 비례할 때. O(1) : 알고리즘에 필요한 연산 횟수가 입력 크기 n과 무관할 때. 예를 들어 ..
선택 정렬 : 해당 순서에 원소를 넣을 위치를 먼저 정한 후, 어떤 원소를 넣을지 선택하는 알고리즘 예시) 선생님이 학생들을 작은 키부터 큰 키 순서대로 세운다고 가정해보자. 1열로 서있는 학생들 중 가장 작은 학생을 뽑아 맨 앞으로 보내고, 남은 학생들 중 가장 작은 학생을 두번째로 보낸다. 이런 식으로 자리를 먼저 정하고 그 자리에 어떤 원소를 넣을지를 정하는 것이 선택 정렬이다. 과정 주어진 배열의 최소값을 찾는다. 그 값을 맨앞에 위치한 값과 교체한다. 맨 처음 위치를 뺀 나머지 배열을 같은 방법으로 교체한다. Java Code - 오름차순 기준 void selectionSort(int[] arr) { int indexMin, temp; // 1. 원소를 넣을 위치(index) 선택 for (in..