전체 글 102

선택정렬

선택정렬은 내림차순 정렬일경우 다음 인덱스의 데이터들중 가장 작은값을 현재 인덱스로 옮기는 방법 구현 방법은 조금 까다롭고, 시간 복잡도도 O(n2)으로 효율이 떨어지는 방식 대신 N 번의 루프로 N번의 데이터 순서 정렬이 확실시 된다는 점이 있다. 문제 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 Sort(Console.ReadLine()); void Sort(string input) { int[] arr = new int[input.Length]; for (int i = 0; i < input.Length; i++) ..

알고리즘/정렬 2024.01.06

버블정렬

버블정렬은 인접한 두 데이터의 크기를 비교해 정렬하는 방식 구현은 쉬운편이나 O(n2) 시간 복잡도를 갖는다. 해당 알고리즘은 위처럼 인덱스를 넘겨가며 데이터의 크기를 비교한 뒤 원하는 조건으로 정렬해주면 된다. 이때 전체 배열의 한 루프가 종료되면 가장 마지막 데이터는 정렬이 완료된다는것을 알수있다. 한번의 루프가 종료될때마다 탐색구간이 줄어들며 비교대상이 없을때까지 반복해주면 된다. 또한 한번의 루프동안 교체가 일어나지 않는다면 정렬이 완료된것으로 간주하면 된다. 문제 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거..

알고리즘/정렬 2024.01.06