달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

문제 : 사용자로부터 7개의 숫자를 입력받아 내림차순으로 정렬하라.

버블정렬을 이용하라. 아래를 참조하라.

 

풀이: 메인의 두 반복문은 일반적인 입력, 출력용 반복문임으로 설명이 불필요하다.

bubblesort함수만 살펴보자.

 

맨 안쪽에 있는 이프문이 스왑함수의 기능을 하는 부분이다.

 

이프문 바로 위의 반복문은 pivot (즉 왼쪽에 있는 기준값)과 대상값(pivot과 비교를 하는 값)을 비교한다. 이 대상값이 안 쪽 반복문에 의해 pivot 오른쪽에서부터 맨 끝의 숫자까지 바뀐다.

그렇게 해서 안쪽 반복문의 모두 수행되면,바깥쪽 반복문은 1회 수행이 완료되면서 i++고 pivot값이 오른 쪽으로 이동한다. 그리고 그 pivot 값을 기준으로 하여 또 나머지 값들에 대한 값 비교 반복문(즉 안쪽 반복문)이 모두 수행된다.

이상으로 내림차순 프로그램: 버블정렬 알고리즘, 스왑 함수에 대해서 알아보았다. 오름차순 또한 스왑함수의 조건식만 다르며 나머지는 다 똑같도.

잘 보았다 싶으시면, 링크추가나 손가락을 눌러주세요ㅋㅋ

 

 

 

Posted by C언어 보이
|