본문 바로가기

Programming/알고리즘

(23)
알고리즘 - 정렬 (ing) 정렬에 대해 잘 정리된 블로그들을 보며 내가 이해하는 대로 정리하는 글. (배우면서 추가 작성 중) 정렬 알고리즘을 배우기 위해 제 게시글에 들어왔다면 원출처에 들어가서 시각적 자료들과 함께 보길 추천드립니다. 출처: 더보기 https://coding-factory.tistory.com/615 https://yabmoons.tistory.com/250 선택 정렬 정렬 미실행된 원소들 중 최소값을 찾아 맨 앞에서부터 채워가는 정렬 장점 : 구현이 쉬움, 비교횟수에 비해 교환횟수가 적어 역순정렬에 적합 단점 : 원소 추가로 인한 재정렬 시 비효율적 버블 정렬 앞에서부터 인접한 두 원소들을 비교해가며 최대값을 맨뒤로 이동시키는 정렬 장점 : 구현이 쉬움 단점 : 비교, 교환횟수가 많아 비효율적 삽입 정렬 (두..
[백준/자바] 2587번 대표값2 - 카운팅 정렬 문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다. 평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면 10 30 30 40 60 이 되고 따라서 중앙값은 30이 된다. 다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오. 코드 카운팅 정렬은 평균 시간복잡도가 O(n)으로 매우 ..
[백준/자바] 2750번 수 정렬하기 - 선택정렬, 삽입정렬, 버블정렬 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 코드 간단한 정렬 문제인데 나는 정렬 알고리즘에 대해 처음 학습하고 있는 입장이라 기본적인 정렬 세가지를 모두 사용해봤다. 셋 다 상대적으로 구현이 쉬운 정렬인데, 그만큼 속도가 느릴 수 있다. (평균 시간복잡도 = n^2) 참고 링크 1. 선택 정렬 맨앞에서부터 다른 인덱스 숫자들과 비교하며 최소값 찾아 순차 배치시키는 정렬 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class SelectionSort { public static void sort (int count, int[] numb..