배열 5

[알고리즘] 배열 요소 정렬 / 함수형식 매크로

배열요소 정렬 정수/정수 연산은 나머지를 버리고 정수부만 얻을 수 있다. 나머지 버리기에 매우 좋다. 배열요소의 앞뒤를 바꾸기와 순차적으로 정렬할 경우 같은 자료형의 새로운 변수를 사용하여 재배열 해준다. 가장 왼쪽 요소의 인덱스는 i 가장 오른쪽 요소의 인덱스는 n -1 -i 위그림 처럼 두값을 교환하는 과정을 함수형식 매크로로 구현하면 프로그램이 짧아지고 읽기도 쉬워진다. #define swap(type, x ,y) do{type t = x; x =y; y = t;} while(0) #define SQR(X) ((X)*(X)) 매크로 함수의 장단점 매크로 함수의 장점은 다음과 같습니다. 1. 매크로 함수는 단순 치환만을 해주므로, 인수의 타입을 신경 쓰지 않습니다. 2. 매크로 함수를 사용하면 여러 ..

알고리즘 2021.09.29

[알고리즘] 배열2

선언과 정의 선언 : 컴파일러에게 대상에 대한 정보만을 알려주어 메모리가 아직 할당되지 않는다. 정의 : 컴파일러에게 대상의 실제 내용을 생성하게 한다. 실제 내용을 생성하고 할당한다. 메모리 구조 데이터 영역: 프로그램 시작하면 할당하고 프로그램이 종료하면 메모리 해제 (전역변수, 정적변수) 스택 영역: 함수 호출시 생성되고 함수호출이 완료되면 사라짐 (지역변수, 매개변수) 힙영역 : 필요에 따라 동적메모리를 할당->프로그램이 실행되는 동안 (런타임 시점)결정해야하는 경우 최댓값 구하기 주사 : 아래처럼 배열의 요소를 하나씩 차례로 살펴보는 과정을 알고리즘 용어로 주사 라고한다. 즉, 스캐닝 한다는 말과 같다. 상수사용 최소화하기 위해 전역변수로 배열 사이즈를 선언하였다. 그냥 int N = 5라고 했..

알고리즘 2021.09.29

[알고리즘] 배열 개념

배열 자료구조 데이터 단위와 데이터 자체사이의 물리적 또는 논리적인 관계로 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법. 데이터 단위 데이터를 구성하는 한 덩어리 배열 같은 자료형의 변수로 이루어진 요소가 모여 직선모양으로 줄지어 있는 자료구조. 배열의 요소 상수만 사용할 수 있다. 상수식 상수만을 포함하는 식으로 실행시점이 아닌 컴파일 시점에 할당 및 계산 된다. 배열 특징 각 요소는 단일로 선언한 int형 변수와 성질이 같기 때문에 각 요소에 int 형값을 자유롭게 대입하거나 제거 할 수있다. 배열의 자료형 int[5] 형 ( int [요소의 개수]형 )이다. int 형이 아니다. #define 을 사용하여 상수를 최소화 시킴 sizeod(a)는 전체 배열이 할당된 메모리 크기이고, s..

알고리즘 2021.09.29

[C++] 2차원 배열, 배열 포인터, 배열 초기화, 배열 매개변수

2차원 배열 기본형태 배열은 기본적으로 n차원까지 가능하다. 보통은 너무 복잡해서 3차원도 잘 안쓴다. int iArr2D[Y][X] = {1,2,3,4,5,6}; Y는 행을 X는 열을 나타낸다. int iArr[2][3]; --> 3칸짜리 배열이 2개 즉, iArr[3]이 2개 (2행3열) 바깥이 행에 접근한다. 맨 아래의 그림을 참고하면 이해하기 쉽다. 3차원 배열 기본형태 배열의 초기화 아래 그림처럼 2가지 방법으로 초기화가 가능하다. 이중 for문을 사용하여 초기화 진행 2차원 배열의 포인터 1차원 배열포인터 int* ptr = iArr2D 2차원 배열포인터 자료형(*변수명)[열의 크기] int(*ptr2D)[3] = iArr2D; 더보기 2차원배열의 원소는 1차원 배열을 뜻한다. 따라서 2차원배..

프로그래밍/C++ 2021.09.24

[C++] 1차원 배열, 배열 포인터, 배열 초기화, 배열 매개변수

배열의 기본형태 자료형 변수명[원소갯수] = 초기값 배열 : 배열(array)이란 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입이다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다. 여러 개의 데이터를 하나의 변수에 담아서 관리할 수 있는 방법 배열의 초기화 int iArr1[5] = {}; 모두 0초기화 int iArr2[5] = {1,2,3,4,5}; 각 원소에 값 삽입형태 좌측부터 0번째 배열에 값이 삽입 int iArr3[5] = {1,2,3}; 채우지 않은 부분은 각 전부 0 초기화 int iArr4[] = {1,}; 배열 크기가 5개라고 인식하지 못함. 배열 갯수 1개로 인식 int iArr5[]..

프로그래밍/C++ 2021.09.24