study/java

5_Java_배열, 버블정렬

스파이크12 2019. 11. 2. 09:42

int[] arr = {2, 1, 3};
-> 1 2 3
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
(사람이 하는방식)

정렬 알고리즘에서 가장 간단하고 기본이 되는 알고리즘
ex) 카드게임 패 순서대로 정리

1. 비교주체를 정하는 for문
2. 비교대상을 정하는 for문
3. if문에 정렬기준정함
4. 출력

//1. 비교 주체를 정하는 for문
for(int i=1; i<arr.length; i++) {
	// 2. 비교 대상을 정하는 for문
 	for(int j=0; j<1; j++) {   
    	// 비교를 통해서 오름차순 정렬
        // 비교 주체가 비교 대상보다 작을경우 값 교환
        if(arr[j] > arr[i]) {
        	int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
}
           

버블정렬

인접한 두개의 요소를 검사하여 정렬하는 방법
뒤에서 부터 정렬이 되어지는 것이 특징

1. 한회차당 내부에 있는 for문이 반복할 회수 지정
2. 지정된 회수만큼 반복하며
j번째 인덱스요소와 j+1번째 요소를 비교하여 정렬
3. if문에 정렬기준정함

for(int i = arr.length -1; i>0; i--) {
	//1 . 한 회차당 내부에 있는 for문이 반복할 회수 지정;
    for(int j=0; j<i; j++) {
    	//2. 지정된 회수만큼 반복하며
        //	j번째 인덱스 요소와 j+1번째 요소를 비교하여 정렬
        if(arr[j] > arr[j+1]) {
        	int temp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = temp;
            count++;
        }
    }
}

배열 복사
얕은복사 , 깊은복사

배열의 증가

배열의 특징
같은자료형,(크기증가 안좋아)
일정한 이름으로 취급가능