[Java] 배열 2

Walter Mitty·2022년 10월 21일
0

KOSTA

목록 보기
11/33
int[] arr;
arr = new int[5];
  • ex) int a1, a2, a3, a4, a5;

    • a1 memory = 1000번지
    • a2 memory = 2000번지
    • a3 memory = 3000번지
      등등....듬성듬성 메모리가 생성된다.
  • new 키워드와 함께 메모리가 할당되므로 메모리가 1000, 1004,1008,1012,1016번지 이렇게 연이어 할당된다. == 더 빠름

int arr[];
arr = new int[5];

//리터럴 방식
arr[0] = 10; //10
int b = 20;
arr[1]=b; //20
byte c = 30;
arr[2] = c; //30
//byte 타입인 c가 int 배열에 들어갈 수 있을까?
//동일 자료형의 나열 묶음이 배열이니까 안됨! 그러나, byte은 int타입보다 작으므로 자동 형변환이 가능하다.

char d = 'A';
arr[3] = d; //65

arr[4] = 12.3f; //(int보다 큰 float를 저장하ㅕ고 하면 안됨)

arr[4] = true; //boolean 타입은 절대 형변환 될 수 없다

arr[4] = "Hello"; // String이라 int 타입으로 안됨

arr[4] = "A"; //글자가 하나든 말든 ""로 묶이면 String 타입이다.

2차원 배열

int[][] arr;
arr = new int[3][2];

3차원 배열

int[][][] arr;
arr = new int[3][2][4];
  • 주로 3차원 배열까지는 쓰긴하지만 그 이상은 쓰지 않는다.
  • 그 이상은 매트릭스를 만들거나 자료구조형을 쓴다.

각 행당 열의 크기
1행에 1열, 2행에 2열, 3행에 3열...
1행에 1씩 넣어서 열크기만큼 반복.

1로만 찍히는게 아니라 1씩 증가시키고 싶으면, 위에 처럼 하면된다.

serrrrr 님 코드

int[][] arr5 = new int[3][3];
		
num = 1;
for(int col= 0; col<= arr5.length-1; col++) {
	for(int row=0; row <= arr5.length-1; row++) {
		arr5[arr5.length-1-row][col] = num++;
	}
}
	
for(int row=0; row <= arr5.length-1 ; row++) {
	for(int col=0; col <= arr5.length-1; col++) {
		System.out.print(arr5[row][col]);
	}
	System.out.println();
}

최상의 데이터건 최악의 데이터건,
버블/셀렉션 소트는 시간복잡도가 늘 똑같다. = 반복횟수는 똑같다

int[] numArr = 
	{5,4,3,2,1}; //worst
    {1,2,3,4,5}; //best
    {10,3,5,2,6};
    //시간 복잡도 다 똑같다~~

0개의 댓글