U E D R , A S I H C RSS

새싹교실/2017/꽃밭/0502


1. 수업 내용

  • 버블 소트 구현해보기
  • 배열 매개변수

2. 과제

  • swap 함수 구현하기
배열의 두 원소를 바꿔주는 swap함수를 구현하세요.
프로토타입 :
  void swap(int a[10], int x, int y) //배열 a의 x번 원소와 y번 원소를 서로 바꾸는 함수

  • Bubble Sort 코드 개선하기
우리가 구현한 버블소트에는 배열의 두 원소를 바꾸는 부분이 있습니다.
  temp = arr[j];
  arr[j] = arr[j + 1];
  arr[j + 1] = temp;
이 부분을 swap함수로 교체해보세요.
swap함수를 사용해서 구현해보라는 얘기입니다.

# 참고 사항 #
main에서 함수를 사용할 때는 두 가지가 필요합니다. 함수 본체프로토타입이지요.
그것들을 소스코드에 다음과 같이 적어줘야합니다.
   #include<stdio.h>

   void swap(int a[10], int x, int y); //프로토타입

   int main(){

      //함수 사용

   }

  void swap(int a[10], int x, int y){   //함수본체
     
     구현

  }

3. 과제 제출

3.1. 혜민


3.2. 유진


3.3. 현지



4. 실습

  • 버블 소트

4.1. 이지수

void swap(int a[], int x, int y);

int main(){
	int arr[10] = { 10, -3, 99, -8, 1, 7, 2, 5, 34, 21 };

	printf("\n 정렬 전\n ");
	//show result
	for (int i = 0; i < 10; i++){
		printf("%d ", arr[i]);
	}
	printf("\n");

	//sorting
	for (int j = 8; j >= 0; j--){
		for (int i = 0; i <= j; i++){
			if (arr[i] > arr[i + 1]){
				int temp = arr[i];
                                arr[i] = arr[i+1];
                                arr[i+1] = temp;
			}
		}
	}

	printf("\n 정렬 후\n ");
	//show result
	for (int i = 0; i < 10; i++){
		printf("%d ", arr[i]);
	}
	printf("\n");

	return 0;
}

4.2. 현지

#include <stdio.h>
int main()
{
	int arr[10] = { -1,2,8,-9,-10,6,5,4,3,0 };
	int i, j, temp = 0;
	printf("정렬전");
	for (i = 0; i < 10; i++)
		printf("%d ", arr[i]);
	printf("\n정렬후:");
	for (i = 0; i < 10; i++)
	{
		for (j = 0; j< 9; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
			
		}
	
	}
	for (i = 0; i < 10; i++)
		printf("%d ", arr[i]);
	printf("\n");
	system("pause");
	return 0;

}

4.3. 혜민

#include<stdio.h>
int main()
{
	int a[10] = { 2,8,4,1,0,9,6,3,7,13 }, b, i, j;

	printf("%d %d %d %d %d %d %d %d %d %d", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
	for (j = 0; j < 10; ++j)
	{
		for (i = 0; i < 9; ++i)
		{
			if (a[i] > a[i + 1])
			{
				b = a[i];
				a[i] = a[i + 1];
				a[i + 1] = b;

			}
		}
	}
	printf("\n%d %d %d %d %d %d %d %d %d %d", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
	return 0;
}

4.4. 유진

int main(){
	int arr[10] = { -10, 3, -8, 9, 6, 11, 2, 3, 17, 0 };
	int i, j;
	int b;
	printf("처음 배열 : \n");
	for (i = 0; i < 10; i++)
	{
		printf("%d\t", arr[i]);
	}
	for (j = 0; j < 10; j++)
	{
		for (i = 0; i < 9-j; i++)
		{
			if (arr[i] > arr[i + 1])
			{
				b = arr[i];
				arr[i] = arr[i + 1];
				arr[i + 1] = b;
			}
		}
	}
	printf("\n나중 배열 : \n");
	for (i = 0; i < 10; i++)
	{
		printf("%d\t", arr[i]);
	}
	return 0;
}


5. 후기

5.1. 물주는사람

새싹들이 너무나 잘 이해해주고 따라주어서 기쁩니다

5.2. 유진

이번에 저번에 해보았던 버블 소팅을 해봤는데, 저번에 발견하지 못한 오류를 찾아낼 수 있었다.
그 때는 완벽하게 성공한줄 알았는데 오류를 찾아낼 수 있어서 의미 있었다.^^

5.3. 현지


저번에 혼자서 연습해봤을때는 잘 했었는데 이번에 한번 더 해보려니 헷갈리는 부분이 있었다. 그 부분을 바로잡을 수 있어서 좋았다.

5.4. 혜민


원래 정렬을 어떻게 하는 건지 교수님 수업을 들을 때까지만 해도 이해하지 못했는데 오늘 수업듣고 혼자 실습까지 하니까 완전히 이해가 되어서 기뻤다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:06
Processing time 0.0258 sec