버블정렬
-
[버블정렬] 백준 1377번책/DoIt 알고리즘 코딩테스트 2024. 11. 8. 12:53
문제bool change = false;for (int =1; i a[j+1] ){ change = true; swap(a[j], a[j+1]); } } if(change == false){ cout 위 버블 소트를 구현한 c++ 코드의 의도를 구하는 문제1. 1번째 줄에 N이 주어진다( 1 2. 2번째 줄부터 N개의 줄에 A[1] ~ A[N] 까지 1개씩 주어진다( 0 3. 시간제한 2초 문제 분석최대 500,000개까지 배열의 개수가 정해질 수 있으므로 O(N^2)일 경우 시간초과가 나게 된다 (버블 정렬은 시간복잡도가 O(N^2)이므로, 최대 개수는 10,000 이다 - 1초에 1억번 연산)[해결방법]1. 문제에서는 버블정렬..
-
[버블정렬] 백준 2750번책/DoIt 알고리즘 코딩테스트 2024. 11. 7. 12:35
문제N개의 수가 주어졌을 때, 이를 오름차순 정렬하는 프로그램을 작성하시오.- 1번째 줄에 수의 개수 N (1 - 2번째 줄부터 N개의 줄에 숫자가 주어짐- 수는 중복되지 않는다 문제 분석하기숫자 범위가 1,000으로 매우 작기 때문에, O(N^2) 시간복잡도 알고리즘을 사용해도 문제 없음버블정렬 알고리즘을 이용하여 문제풀이 슈도코드N(정렬할 수 개수)A(정렬할 배열 선언)for(i : 0~N -1){ for(j : 0 ~ N -1 -i) { 현재 A배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 두 수 바꾸기 }}A 배열 출력 구현import java.io.BufferedReader;import java.io.InputStreamReader;public class App ..
-
[정렬] 버블정렬알고리즘 2024. 11. 7. 11:10
정렬정렬 알고리즘정의시간복잡도삽입대상을 선택해 정렬된 영역에서 선택 데이터의 적절한 위치를 찾아 삽입하면서 정렬하는 방식O(N) ~ O(N^2)버블데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식O(N^2)선택대상에서 가장 크거나 작은 데이터를 찾아가 선택을 반복하면서 정렬하는 방식O(N^2)퀵pivot 값을 선정해 해당 값을 기준으로 정렬하는 방식O(NlogN) ~ O(N^2)힙이진트리를 이용하여 최대힙(오름차순)/최소힙(내림차순) 트리를 구성해 정렬하는 방식O(NlogN)병합이미 정렬된 부분 집합들을 효율적으로 병합해 전체를 정렬하는 방식O(NlogN) + 추가적인 메모리 필요기수데이터의 자릿수를 바탕으로 비교해 데이터를 정렬하는 방식O(N) + 추가적인 메모리 필요 버블정렬데..