CS

Array와 LinkedList 차이,Call By value와 Call By Reference 차이

yougeun 2022. 10. 28. 18:12
728x90

배열과 링크드 리스트의 차이

배열

  1. 데이터 입력이 순차적으로 이루어지며, 물리적 주소 또한 순차적이다.
  2. 인덱스가 있어 원하는 데이터에 한 번에 접근 가능하기 때문에 데이터 접근 속도가 매우 빠르다.
  3. 데이터 삽입, 삭제에 취약하다.배열 특성상 데이터 삽입, 삭제가 이루어지면 해당 위치의 다음 순서의 데이터의 위치 변경이 이루어지기 때문이다.
  4. 배열의 크기가 처음에 결정되어서(unresizable) 변경이 불가능하다.

링크드 리스트

  1. 인덱스를 가지고 있는 배열과는 다르게 리스트는 인덱스 대신 현재 위치의 이전 및 다음 위치에 대한 정보가 있다.
  2. 데이터 접근 시 연결되어 있는 링크를 따라가야 하기 때문에 배열에 비해 속도가 떨어진다.
  3. 데이터 삽입, 삭제는 논리적 주소만 바꿔주면 되기 때문에 용이하다.
  4. 언제든지 메모리 할당/해제를 해서 크기를 변경할 수 있다.(resizable)
  5. 데이터 입력이 논리적 순서로 이루어지며 물리적 주소는 순차적이지 않다.

Call By value와 Call By Reference 차이

Call By Value 

값에 의한 호출이며 함수 호출 시 전달되는 변수의 값을 복사하여 함수의 인자로 전달한다. 복사된 인자는 함수 안에서 사용되는 지역 함수이다. 인자의 데이터 타입이 기본 자료형 : int, short, long, float, double, char, boolean

 

Call By Reference 

참조에 의한 호출이며 복사하지 않고 직접 참조를 하기 때문에 속도가 빠르다. 하지만 원래 값이 영향을 받는다. 인자의 데이터 타입이 참조 자료형 : Array, Class Instance

728x90