알고리즘 학습: 정렬 선택

1087 단어
  • 배경 소개: 정렬 선택 (Selection sort) 은 간단 하고 직관 적 인 정렬 알고리즘 입 니 다.그것 의 작업 원 리 는 다음 과 같다.먼저 정렬 되 지 않 은 시퀀스 에서 최소 (큰) 요 소 를 찾 아 정렬 시퀀스 의 시작 위치 에 저장 한 다음 에 나머지 정렬 되 지 않 은 요소 에서 최소 (큰) 요 소 를 계속 찾 은 다음 정렬 된 시퀀스 의 끝 에 놓 습 니 다.모든 요소 가 정렬 될 때 까지 유추 합 니 다.위 키 백과 에서 왔어요
  • 알고리즘 규칙: 정렬 대기 집합 (0... n) 을 두 부분 으로 보고 시작 상태 에서 일 부 는 (k. n) 의 정렬 대기 unsorted 집합 이 고, 다른 일 부 는 (0... k) 의 정렬 대기 sorted 집합 입 니 다. 정렬 대기 집합 에서 최소 요 소 를 선택 하고 표시 i 를 기록 합 니 다. 이 표시 가 k 와 같 지 않 으 면 unsorted [i] 는 sorted [k] 와 교환 하여 이 과정 을 반복 합 니 다.unsorted 집합 에서 요소 가 비어 있 을 때 까지.
  • 코드 구현 (Java 버 전)
  •     public void selectSort(int[] args) {
            int len = args.length;
            for (int i = 0,k = 0; i < len; i++,k = i) {
                //           
                for (int j = i + 1; j < len; j++) {
                    //             ,       ,                 
                    if (args[k] > args[j]) k = j;
                }
    
                if (i != k) {
                    int tmp = args[i];
                    args[i] = args[k];
                    args[k] = tmp;
                }
            }
        }
    

    좋은 웹페이지 즐겨찾기