선택정렬의 핵심은
가장 작은 것을 선택해서 앞으로 보내는 것을 선택하는 것이다.
제일작은것을 검색해서 맨앞으로 보낸다. 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;}JAVApublic 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]);}}}