정렬(버블정렬,선택정렬,삽입정렬)

10

Click here to load reader

Upload: choi-mun-gyu

Post on 23-Jun-2015

1.115 views

Category:

Education


0 download

DESCRIPTION

sorting sort insert sort selection sort insertion sort bubble sort 아꿈사

TRANSCRIPT

Page 1: 정렬(버블정렬,선택정렬,삽입정렬)

sorting 아꿈사

Page 2: 정렬(버블정렬,선택정렬,삽입정렬)

정렬은 무엇인가?

• 리스트의 항목들을 특정한 순서에 따라 배열하는 것

• 오름차순 내림차순

Page 3: 정렬(버블정렬,선택정렬,삽입정렬)

분류 • 교환횟수

• 메모리 사용

• 재귀

Page 4: 정렬(버블정렬,선택정렬,삽입정렬)

Bubble sort

• 첫번째 부터 마지막까지 비교

• 비교 후, 값을 교환

• 평균 시간복잡도 : O(n^2)

• 공간복잡도 : O(1)

Page 5: 정렬(버블정렬,선택정렬,삽입정렬)

Bubble sort

int i;

int j;

int temp;

for(i=0; i<len; i++){

for( j=0; j<len-1; j++){

if(arr[ j] > arr[ j+1]){

int temp=arr[ j];

arr[ j] = arr[ j+1];

arr[ j+1] = temp;

}

}

}

Page 6: 정렬(버블정렬,선택정렬,삽입정렬)

Selection sort

1. 리스트에서 최소 값을 찾는다. 인덱스를 저장.

2. 현재 위치의 값과 최소 인덱스를 교환

3. 전체 배열이 정렬될 때까지 반복

평균 시간복잡도 : O(n^2)

공간복잡도 : O(1)

Page 7: 정렬(버블정렬,선택정렬,삽입정렬)

Selection sort

int i; int j; int temp; int min;

for(i=0; i<len; i++){ min=i; for(j=i; j<len; j++){ if(arr[j]<arr[min]) min = j;

} temp = arr[min]; arr[min] = arr[i]; arr[i] = temp;

}

Page 8: 정렬(버블정렬,선택정렬,삽입정렬)

Insertion sort

• 내가 누울 자리를 찾아서 눕는(?) 정렬

• 평균 시간복잡도 : O(n^2)

• 공간복잡도 : O(1)

Page 9: 정렬(버블정렬,선택정렬,삽입정렬)

Insertion sort

• 내가 누울 자리를 찾아서 눕는(?) 정렬

Page 10: 정렬(버블정렬,선택정렬,삽입정렬)

Insertion sort int i;

int j;

int p;

int temp;

for(i=1; i<len; i++){

p = arr[(j=i)];

while( --j >=0 && p <arr[j]) arr[j+1] = arr[j];

arr[j+1] = p;

}