9 대 정렬 알고리즘 의 선택 정렬 (원리 및 실현)

2484 단어 정렬 알고리즘
1. 알고리즘 사상: 정렬 을 선택 하고 처음부터 끝까지 스 캔 순 서 를 찾 아 가장 작은 요 소 를 찾 아 첫 번 째 요소 와 교환 한 다음 에 남 은 요소 에서 이런 선택 과 교환 방식 을 계속 하면 최종 적 으로 질서 있 는 순 서 를 얻 을 수 있 습 니 다.
2. 알고리즘 과정
밤 을 들다.
원시 서열: 49, 38, 65, 97, 76, 13, 27, 49
1) 정렬 을 선택 하 는 과정 에서 질서 와 무질서 두 부분 으로 나 뉘 어 시작 이 모두 무질서 한 서열 이다.
결과: 49, 38, 65, 97, 76, 13, 27, 49
2) 무질서 한 서열 에서 가장 작은 요 소 를 13 에서 꺼 내 고 13 과 무질서 한 서열 의 첫 번 째 요 소 를 교환 합 니 다. 이때 하나의 요소 만 포함 하 는 질서 있 는 서열 이 발생 하고 무질서 한 서열 은 1 을 줄 입 니 다.
결과: {13,}   {38、65、97、76、49、27、49}
3) 무질서 한 서열 에서 가장 작은 원소 27 을 추출 하고 27 과 무질서 한 서열 의 첫 번 째 원 소 를 교환한다. 이때 두 원소 만 질서 있 는 서열 이 생기 고 무질서 한 서열 은 하 나 를 줄인다.
결과: {13, 27,}   {65、97、76、49、38、49}
4) 무질서 한 서열 에서 가장 작은 요소 38 을 추출 하고 38 과 무질서 한 서열 의 첫 번 째 요 소 를 교환 합 니 다. 이때 세 가지 요 소 를 포함 하 는 질서 있 는 서열 이 발생 하고 무질서 한 서열 은 1 을 줄 입 니 다.
결과: {13, 27, 38,}   {97、76、49、65、49}
5) 무질서 한 서열 에서 가장 작은 요 소 를 추출 하고 49 와 무질서 한 서열 의 첫 번 째 요 소 를 교환 합 니 다. 이때 네 개의 요 소 를 포함 하 는 질서 있 는 서열 이 발생 하고 무질서 한 서열 은 1 을 줄 입 니 다.
결과: {13, 27, 38, 49,}   {76、97、65、49}
6) 무질서 한 서열 에서 가장 작은 요 소 를 추출 하고 49 와 무질서 한 서열 의 첫 번 째 요 소 를 교환 합 니 다. 이때 다섯 개의 요 소 를 포함 하 는 질서 있 는 서열 이 발생 하고 무질서 한 서열 은 1 을 줄 입 니 다.
결과: {13, 27, 38, 49, 49,}   {97、65、76}
7) 무질서 한 서열 에서 가장 작은 원소 65 를 추출 하고 65 와 무질서 한 서열 의 첫 번 째 원 소 를 교환한다. 이때 6 개의 원 소 를 포함 하 는 질서 있 는 서열 이 생기 고 무질서 한 서열 은 1 을 줄인다.
결과: {13, 27, 38, 49, 49, 65}   {97、76}
8) 무질서 한 서열 에서 가장 작은 원소 76 을 추출 하여 76 과 무질서 한 서열 의 첫 번 째 원 소 를 교환한다. 이때 7 개의 원 소 를 포함 하 는 질서 있 는 서열 이 생기 고 무질서 한 서열 은 1 을 줄인다.
결과: {13, 27, 38, 49, 49, 65, 76,}   {97}
9) 마지막 요 소 는 반드시 최대 요소 이 고 무질서 한 정렬 은 질서 있 는 서열 을 직접 생산 한다.
결과: {13, 27, 38, 49, 49, 65, 76, 97}

public class SelectSort {
    public static void main(String[] args) {
        int [] arr = {49,38,65,97,76,13,27,49};
        selectSort(arr,arr.length);
    }

    public static void selectSort(int [] arr,int n){
        for (int i = 0; i < n - 1; i++) {
            int index = i;
            int j;
            //           
            for (j = i + 1; j < n; j++) {
                if (arr[j] < arr[index]) {
                    index = j;
                }
            }
            int tmp = arr[index];
            arr[index] = arr[i];
            arr[i] = tmp;
            System.out.println(Arrays.toString(arr));
        }

    }
}

좋은 웹페이지 즐겨찾기