[알고리즘] 버블 정렬(Bubble Sort) [값을 비교하여 뒤에서부터 정렬하는 정렬 알고리즘]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 버블 정렬(Bubble Sort)이란? 버블 정렬은 1번째와 2번째 원소를 비교하여 정렬하고, 2번째와 3번째, ..., n-1번째와 n번째를 정렬한 뒤 다시 처음으로 돌아가 이번에는 n-2번째와 n-1번째까지, ... 해서 최대 n(n-1)/2 번 정렬한다. → 한 번 돌 때마다 마지막 하나가 정렬되므로 원소들이 거품이 올라오는 것처럼 보여 버블 정렬이다. - 버블 정렬의 효율성? 거의 모든 상황에서 최악의 성능을 보여준다. 단, 이미 정렬된 자료에서는 1번만 돌면 되기 때문에 최선의 성능을 보여준다. → 만들기가 쉽고 직관적일 뿐이지 알고리즘적 관점에서 보면 대단히 비효율적인 정렬 방식 - 버블 정렬의 파생형 1. 칵테일 정렬(cocktail sort) 셰이커 정렬(shaker sort)라고도 한..
[알고리즘] 정렬 알고리즘(Sorting algorithm)이란? [정렬 알고리즘의 정의, 이진탐색(Binary Search)]
·
◈ Coding Test/알고리즘(Algorithm)🎡
- 정렬 알고리즘(Sorting algorithm)이란? 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘 - 정렬 알고리즘의 결과 조건 출력은 비 내림차순(각각의 원소가 전 순서 원소에 비해 이전의 원소보다 작지 않은 순서)이다. 출력은 입력을 재배열하여 만든 순열이다. - 왜 사용하는가? 컴퓨터 분야에서 사용하는 데이터의 경우, 숫자의 순서나 어휘의 순서대로 정렬한 다음 사용해야 되는 경우가 많아 얼마나 효율적으로 정렬하느냐가 문제의 핵심이다. 데이터를 정렬해야 하는 이유는 탐색을 위해서! → 데이터가 정렬되어 있다면 이진 탐색이라는 강력한 알고리즘을 사용할 수 있다. - 이진 탐색(Binary Search) 오름차순으로 정렬된 정수의 리스트를 같은 크기의 두 부분 리스트로 나누..