1. 출석 및 진행

  • 김민규
  • 채유빈
  • 과제 설명 및 배열에 대한 개념 학습

2. 수업 내용

2.1. 과제 설명

  • 과제 설명은 생략합니다.

2.2. 배열

2.2.1. 왜 배열이 필요한가

  • 자료를 처리할 때, 많은 변수를 각각 선언하거나 코드를 나열하는 것보다 배열을 쓰면 편리합니다.

2.2.2. C언어에서의 배열

int main()
{
	int A[10]; // 정수형 데이터 10개

	printf("%d", A[0]); // 배열의 첫 번째 원소 출력
}

  • An으로 선언할 경우 첨자는 0 부터 n-1 까지 쓸 수 있습니다.

2.2.3. 자료구조

  • 배열은 기초적인 자료구조 중 하나입니다.
  • 배열의 특징은 연속적인 메모리 공간을 가진다는 점입니다.
    • 원하는 원소에 즉시 접근할 수 있습니다.
    • 원소를 삭제하거나 삽입하는 일은 어렵습니다.
  • 다른 자료구조(리스트, 트리)에 비해 다루기 쉽습니다.

2.3. 정렬

2.3.1. 왜 정렬이 필요한가

  • 어떤 도서관의 서가에 책이 정렬되어 있지 않다고 가정해봅시다. 그 상황에서는 어떤 특정한 책을 찾기는 매우 힘듭니다. 우리가 도서관에서 책을 쉽게 찾을 수 있는 이유는 책들이 정렬 되어 있기 때문입니다. 단, 저런 편리함을 위해서는 어느 정도의 비용이 발생합니다. 기존의 데이터를 정렬할 때 드는 비용이 있고, 새로운 데이터가 삽입하려 할 때 정렬을 유지하기 위해 드는 비용이 발생합니다. 예를 들어 도서관의 서가에 책이 정렬되어 있으면 새로운 책이 들어왔을 때 제 자리에 찾아 꽂아야 하지만, 정렬되어 있지 않다면 아무 빈 공간에 꽂으면 됩니다. 이렇듯 비용이 발생하기 때문에, 어떤 자료를 항상 정렬할 필요는 없습니다. 찾는 일보다 추가하는 일이 훨씬 많다면 정렬하지 않는 것이 이득이 될 수도 있습니다.

3. 숙제

  • 원소 간의 비교가 가능한 데이터 N개가 주어졌을 때, 각각의 데이터에 순위를 부여하는 방법에 대해 생각해보세요.
Retrieved from http://wiki.zeropage.org/wiki.php/새싹교실/2012/열반/120507
last modified 2021-02-07 05:29:47