[c언어] 고급프로그래밍 sorting 오름차순 내림차순 소스
- 최초 등록일
- 2009.09.18
- 최종 저작일
- 2009.06
- 6페이지/ 한컴오피스
- 가격 1,000원
소개글
c언어로 짠 오름차순 내림차순입니다.
소스포함 스샷및 고찰 과정 다있읍니다.
목차
1, 과제설명
2, 이론
3, 소스코드 설명
4, 실행결과 및 설명
5, 고찰
6, 전체 소스코드
본문내용
2, 이론
재귀함수
-재귀함수(recursion function)는 흔히 순환함수라고 하여 자기 자신을 반복하여 호출하는 함수를 말한다. 자기 자신을 계속 불러서 계속 부르는 이유는 나름대로 장점이 있기 때문이다. 일반적으로 반복문으로 작성을 한 결우 프로그램의 길이가 엄청나게 길어지고, 연산이 복잡해져 프로그램의 작성이 어려워 지는 경우도 있다.
Sort
정렬(sort)이란 컴퓨터 기억 공간내에 순서없이 배열된 자료들 중에서 특정 항목을 키(key)로 하여 키 값에 따라 오름 차순(ascending order) 혹은 내림 차순(descending order)으로 레코드를 재배열하는 것을 말한다.
정렬은 전산학 분야에서 중요한 개념으로 인식되고 있으며, 컴퓨터 내에서 자료들을 처리하는데 소요되는 시간의 대부분은 자료를 탐색하거나 정렬하는데 소요되므로 정보의 탐색을 용이하게 하기 위하여 자료들을 분류(sort)된 상태로 유지해야 한다.
정렬은 수행하는 장소에 따라 구분하면 내부정렬과 외부정렬로 나눌 수 있다. 내부정렬은 정렬되는 자료가 적어서 자료 전체의 정렬이 주기억 장치에서 이루어지는 내부 정렬(Internal sort)과 정렬되어야 할 자료가 매우 많아 자료 전체의 정렬이 보조기억 장치에서 이루어지는 외부정렬(External sort)로 구분된다.
정렬은 주어진 상황에 따라 최적의 알고리즘을 선택해야 하며, 사용하는 컴퓨터의 시스템 특성, 정렬할 자료의 양, 초기 자료의 양, 키 값의 분포, 작업공간의 크기, 키의 비교 횟수, 자료의 이동 횟수 등이 정렬 알고리즘을 선택할 때 고려해야 할 사항들이다.
퀵 정렬
C.A.R. Hoare가 만든(The Computer Journal, 5:10-15, 1962.) 가장 우수한 편에 속하는 평균 수행능력을 갖는 정렬 방식이다. (단, 조건에 따라서는 분포수 정렬, 역사상 정렬, 래딕스 정렬방법이 빠르다.) 버블정렬이나 선택정렬의 경우, 바로 옆의 데이터를 서로 비교하여 교환하는 방식인데, 이러한 방식은 데이터가 최종으로 정렬될 위치에서 멀면 멀수록 비효율적이라고 할 수 있다.
퀵 정렬은 멀리 떨어진 데이터를 서로 교환함으로써 이러한 비효율성을 개선하였다. 간단히 설명하면, `Pivot` 이라 불리는 임의의 값을 설정한 후에 배열의 양끝방향에서부터 탐색을 시작해서 Pivot값보다 큰 값과 작은값을 발견하여 서로 치환하는 방식이다.
참고 자료
없음