정렬
-
[정렬] 문제 이름 : 성적이 낮은 순서로 학생 출력하기 - 객체 정렬, List<T>, CollectionAlgorithm/유형별 문제 풀기 2021. 9. 16. 11:38
문제 설명 N명의 학생 정보가 주어진다. 학생 정보는 학생의 이름과 성적으로 구분된다. 각 학생의 이름과 성적 정보가 주어졌을 때 성적이 낮은 순서대로 학생의 이름을 출력하는 프로그램을 작성하시오. 사용 개념 객체 오름차순 정렬, List 정렬 문제 해결 아이디어 이름과 성적을 멤버 변수로 가지는 사용자 정의 클래스 List에 해당 객체 저장, Collections을 사용한 오름차순 정렬 코드 ㄱ. 이름과 성적을 담을 사용자 정의 클래스 생성 ㄴ. ㄱ에서 생성한 클래스가 Comparable 인터페이스 구현 & compareTo 메서드 오버라이딩 → 이때 정의된 정렬 기준을 해당 클래스의 'natural ordering' 이라고 부름, compareTo()는 'natural comparison method..
-
[정렬] 개념정리1 - 삽입 정렬, 선택 정렬, 퀵 정렬, 계수 정렬Algorithm/개념정리 2021. 8. 18. 10:01
개념 → 정렬 : 데이터를 특정한 기준에 따라 오름차순 or 내림차순으로 나열하는 것 → 자료 탐색에 있어서 필수적임! → 정렬 알고리즘으로 데이터를 정렬하면 이진 탐색이 가능해짐(정렬은 이진 탐색의 전처리 과정이기도 함) 추가) 오름차순으로 정렬된 데이터들을 내림차순 정렬할 경우 : 리스트 뒤집는 연산은 O(N)의 복잡도로 간단히 수행 가능함 분류 *정렬 알고리즘 선택 기준 → 모든 경우에 최적인 정렬 알고리즘은 없음 → 각 응용분야에 적합한 정렬 방법을 사용해야 함 ex) 레코드 수의 많고 적음, 레코드 크기의 크고 작음, key의 특성(문자, 정수, 실수 등), 메모리 내부/외부 정렬 *정렬 알고리즘의 평가 기준 → 비교 횟수의 많고 적음, 이동 횟수의 많고 적음 *정렬 알고리즘 분류 [1] 단순하..