선택 정렬 은 간단하고 직관적인 정렬 알고리즘입니다. 알고리즘 원리는 정렬되지 않은 시퀀스에서 가장 작은(가장 큰) 요소를 먼저 찾아 이를 정렬된 시퀀스의 시작 위치에 저장한 다음 정렬되지 않은 나머지 요소에서 선택하는 것입니다. 요소 중에서 가장 작은(가장 큰) 요소를 검색하여 정렬된 시퀀스의 끝에 저장하는 방식으로 모든 요소가 정렬될 때까지 계속됩니다.
선택 정렬에는 총 "배열 수 - 1" 라운드가 있으며, 각 정렬 라운드는 한 주기입니다.
1) 먼저 현재 주기의 첫 번째 숫자가 가장 작은 숫자라고 가정합니다.
2) 이후 각 숫자와 비교하여 현재 숫자보다 작은 숫자가 발견되면 최소 숫자를 다시 결정하고 아래 첨자를 얻습니다.
3) 배열의 끝까지 순회할 때, 이번 라운드의 가장 작은 숫자를 구합니다.
4) 현재 루프의 첫 번째 번호로 교환합니다.
예를 들어:
importjava.util.Arrays;publicclassMain{publicstaticvoidmain(String[]args){int[]arr=newint[]{19,26,8,35,41,77};for(inti=0;i<arr.length- 1;i++){//각 루프는 가장 작은 숫자를 찾습니다 intminIndex=i;//가장 작은 숫자의 첨자를 기록합니다 intminNum=arr[i];//가장 작은 숫자를 기록합니다 for(intj=i+1;j< arr.length;j++){//각 루프는 가장 작은 숫자를 찾습니다. if(arr[j]<minNum){//현재 숫자가 최소 숫자보다 작으면 최소 숫자 minNum=arr[j];를 업데이트합니다. / /최소 개수 업데이트 minIndex=j;//최소 개수의 첨자 업데이트}} arr[minIndex]=arr[i];//최소 개수를 맨 앞으로 입력 arr[i]=minNum;//Put 플래그 비트를 최소 수의 원래 위치로 설정합니다.}for(inti=0;i<arr.length;i++){System.out.println(arr[i]);}}}
실행 결과는 다음과 같습니다.
81926354177