CS - 자료구조(1)

wlsdnboy·2022년 2월 16일
0

자료 구조란?

자료구조란 데이터들의 집합이며 규칙에 따라 나열 되며 자료에 대한 처리를 효율적 으로 하기 위해
자료를 조직적,체계적으로 구분하여 표현한 것 이다.

자료 구조의 목적

자료를 효율적으로 관리하고 저장해서 실행시간의 단축과 메모리가 절약된다.

자료 구조의 종류

자료의 특성,크기, 사용법 그리고 수행하는 연산의 종류와 구현에 필요한 기억 공간 크기에 따라 자료구조의 종류를 선택할 수 있다.

  • 자료형에 따라 분류하는 단순구조(String,int....)
  • 데이터를 순차적으로 나열시킨 형태, 선형 구조 : Array,Linked List,원형 연결 리스트, 이중연결 리스트, 환형 이중 연결 리스트, 해시 테이블, 스택, 큐, 덱 등이 있다.
  • 하나의 자료 뒤에 여러개의 자료가 존재하는 의미, 비선형구조 : 그래프 , 트리 등이 있다.

배열(Array) 이란?

메모리에 동일한 자료형을 순차적으로 관리하는 가장 기본적인 자료 구조 이다.

배열의 특징

  • 배열의 값을 요소라고 하고 그 순서를 인덱스라고 한다.
  • 배열은 논리적 순서에 따라 순차적으로 데이터를 입력하고 물리적 주소 또한 순차적이다.
  • 메모리 할당이 연속적이기 때문에 원하는 인덱스번호를 알면 데이터의 한번에 접근이 가능하기 때문에 데이터 접근 속도는 매우빠르다.
  • 데이터의 삽입, 삭제가 이루어지면 모든 데이터의 위치를 변경해야 하기때문에 많은 자원이 낭비되고 비효율적이다

배열의 선언


int[] arr = new int[10];
int arr[] = new int[10]; 

배열의 요소

arr[0] = 1; // 0번째 인덱스에 1을 입력
String[] str = {"a","b","c","hello"}; // 배열 선언과 동시에 값을 할당할 수 있다.

배열의 예제

int arr[] = new int[10];

for(int i = 0; i< arr.length; i++)
{
   arr[i] = i;
   System.out.println(arr[i]);
}

인덱스 0번 부터 9번까지 값이 들어간것을 확인할 수 있다.

점수의 평균을 계산하는 예제를 출력해 봅시다.


int arr1[] = {95,100,97};
	double sum1 = 0;

	for(int i = 0 ; i < arr1.length; i++){
	     sum1 = sum1 + arr1[i];
	     
	          
	}
	System.out.println(sum1/ arr1.length);
   
 }

2차원 배열 선언


int[][] arr = new int[2][3]; //2는 행의 갯수 , 3은 열의 갯수

arr[0][0]arr[0][1]arr[0][2]
arr[1][0]arr[1][1]arr[1][2]

2차원 배열은 이런 구조로 구성되어 있다.

2차원 배열 예제

구구단을 출력해 봅시다.


// 2단부터 3단까지 출력하는 구구단 입니다

int[][] arr1 = new int[2][9]; //2개의 행과 9개의 열을 초기화

	for(int i=2; i < 4; i++){
	   for(int j=1; j<10; j++){
	     arr1[i-2][j-1] = i*j; 
	   }
	}

	for(int i=0; i< arr1.length; i++){ //arr1.length는 행의 열 갯수
	  System.out.println(Arrays.toString(arr1[i]));
	}

//[2, 4, 6, 8, 10, 12, 14, 16, 18]
//[3, 6, 9, 12, 15, 18, 21, 24, 27]

//출력되는 것을 확인할 수 있습니다.
profile
초보 개발자

0개의 댓글