본문 바로가기

카테고리 없음

알고리즘 기초 1. 선택정렬

선택정렬의 핵심은


가장 작은 것을 선택해서 앞으로 보내는 것을 선택하는 것이다.

제일작은것을 검색해서 맨앞으로 보낸다. 1.

1

3

5

7

9

2

4

6

8

10

그다음으로 검색했을 때 제일 작은 것 2 ..

1

3

5

7

9

2

4

6

8

10

2를 보낸다..

1

2

5

7

9

3

4

6

8

10

디음으로 제일 작은것 3..

1

2

5

7

9

3

4

6

8

10

3을 보낸다..

1

2

3

7

9

5

4

6

8

10

반복적으로 수행한다...!


C 언어


#include <stdio.h>
int main(void){
// 숫자들을 오름차순으로 정리
/*가장 작은 것을 선택해서 앞으로 보내는 것을 생각해라 */
int i, j , min, temp, index;
int arr[10]= {1,3,5,7,8,9,2,4,6,10} ;
for(int i=0; i<10;i++){
//min 초기설정은 정렬하는 모든 숫자보다 크도록 설정
min = 9999;
for(int j=i ; j<10; j++){
//min값은 최고 작은 값을 먼저 찾은 뒤에
if(min>arr[j]){
// 최고 작은 값과 그 작은 값이 있는 위치를 저장.
min=arr[j];
index = j;
}
}
// temp 에 저장 한뒤에 크로스 해서 값을 이동
temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
for(int i=0; i<10;i++){
printf("%d ",arr[i]);
}
return 0;
}




























JAVA

public class SelectSort {
public static void main(String[] args) {
int min,temp,index;
index =0;
int arr[] = {10,9,8,7,6,5,4,3,2,1};
for(int i=0;i<10;i++) {
min = 9999;
for(int j=i;j<10;j++) {
if(min>arr[j]) {
min = arr[j];
index = j;
}
}
temp = arr[i];
arr[i] = min;
arr[index] = temp;
}
for(int z=0;z<10;z++) {
System.out.println(arr[z]);
}
}
}