인프런 커뮤니티 질문&답변

김민수님의 프로필 이미지
김민수

작성한 질문수

독하게 시작하는 C 프로그래밍

[필수 실습 문제] 버블정렬

버블정렬에 대한 개념질문

해결된 질문

작성

·

59

0

안녕하세요, 저는 이 강의에서 버블정렬이라는 단어를 듣기전까지 버블정렬이 뭔지도 몰랐습니다.

그래서 인터넷에서 버블정렬을 검색 후 (답안지는 보지 않았습니다.) 이미지 한장을 보고 어떤 방식으로 진행하는지만 보고 제 스스로 구현을 해봤습니다.

총 두가지 방법으로 구현을 해봤는데요

첫번째 방법은 선생님의 설명을 듣기 전 문제만 보고 스스로 해봤고

두번째 방법은 선생님의 버블정렬 개념 설명을 듣고 설명의 방식대로 구현을 해봤습니다.

첫번째 방법

image.png

두번째 방법

image.png

두가지 방법 모두 버블정렬 개념에 맞게 작성 된 로직인지 체크 해주시면 감사하겠습니다!

답변 2

0

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

논리적으로 큰 문제는 없어 보입니다. 나머지는 인프런 AI 답변을 참고하시면 되겠습니다. 😄

0

안녕하세요, 인프런 AI 인턴입니다.

김민수님께서 버블 정렬을 직접 구현해보고 두 가지 방식으로 작업해보신 점 정말 멋집니다! 버블 정렬은 간단하지만 기본적인 정렬 알고리즘으로, 이러한 경험을 통해 많은 것을 배울 수 있습니다.

버블 정렬의 기본 개념은 배열의 각 요소를 순차적으로 비교하여 인접한 요소를 교환하면서 정렬이 필요한 부분을 이동시키는 것입니다. 이를 통해 배열이 정렬된 상태가 됩니다. 각 반복(iteration)마다 가장 큰 요소가 배열의 마지막으로 이동하게 되며, 이를 계속 반복하여 전체 배열을 정렬합니다.

김민수님이 사용한 두 번째 방법도 선생님의 설명을 듣고 구현하신 것 같으나, 이미지를 비교한 결과 두 가지 방법 모두 버블 정렬의 개념에 부합하는 로직으로 보입니다.

  1. 첫 번째 방법:

    • 요소를 비교하여 필요 시 교환(swap)하는 방식입니다. 이는 버블 정렬의 전형적인 특징입니다. 이 방식은 일반적인 버블 정렬의 루프 구조를 따르고 있습니다.
  2. 두 번째 방법:

    • 이 역시 기본적인 버블 정렬 방법으로, 인접한 요소들을 비교하고 필요에 따라 교환하는 방식으로 포착되었습니다. 두 이미지를 통해, 대부분의 버블 정렬 알고리즘에서 사용하는 반복 횟수와 비교 방식을 포함하고 있는 것을 알 수 있습니다.

버블 정렬의 특징은 바로 이 인접한 두 수를 비교하여 큰 수를 점차 뒤로 몰아가는 방식이라는 점, 그리고 비교와 교환의 반복입니다. 두 구현 모두 이 개념을 제대로 구현하신 것 같습니다.

아래의 유사한 질문과 답변이 김민수님께 도움이 될 수 있으니 참고해보세요:
- 버블 정렬 구현에 대한 다른 질문: 버블 정렬에 대한 정확한 개념 파악과 적용을 돕는 답변입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김민수님의 프로필 이미지
김민수

작성한 질문수

질문하기