문제 : 사용자로부터 7개의 숫자를 입력받아 내림차순으로 정렬하라.
버블정렬을 이용하라. 아래를 참조하라.
풀이: 메인의 두 반복문은 일반적인 입력, 출력용 반복문임으로 설명이 불필요하다.
bubblesort함수만 살펴보자.
맨 안쪽에 있는 이프문이 스왑함수의 기능을 하는 부분이다.
이프문 바로 위의 반복문은 pivot (즉 왼쪽에 있는 기준값)과 대상값(pivot과 비교를 하는 값)을 비교한다. 이 대상값이 안 쪽 반복문에 의해 pivot 오른쪽에서부터 맨 끝의 숫자까지 바뀐다.
그렇게 해서 안쪽 반복문의 모두 수행되면,바깥쪽 반복문은 1회 수행이 완료되면서 i++고 pivot값이 오른 쪽으로 이동한다. 그리고 그 pivot 값을 기준으로 하여 또 나머지 값들에 대한 값 비교 반복문(즉 안쪽 반복문)이 모두 수행된다.
이상으로 내림차순 프로그램: 버블정렬 알고리즘, 스왑 함수에 대해서 알아보았다. 오름차순 또한 스왑함수의 조건식만 다르며 나머지는 다 똑같도.
잘 보았다 싶으시면, 링크추가나 손가락을 눌러주세요ㅋㅋ
'C언어 업무보고' 카테고리의 다른 글
20140331 02 이차원 배열의 활용 문제 1 구구단 저장 (0) | 2014.03.31 |
---|---|
20140331 01이차원 배열의 활용 문제 2 (0) | 2014.03.31 |
140328 도전4 회문 검사 프로그램:문자열 검사 (0) | 2014.03.28 |
140328 05 도전3 정수입력과 배열 : 나머지 연산자, 배열의 순서 (0) | 2014.03.28 |
140328 04 도전2 이진수 변환 프로그램, 배열예제, goto 문 (0) | 2014.03.28 |