이 기사의 예는 Java 정렬 알고리즘 요약을 선택합니다. 참조를 위해 모든 사람을 위해 공유하십시오. 특정 분석은 다음과 같습니다.
정렬 선택의 기본 작동은 정렬 할 데이터 요소에서 선택한 최소 (또는 최대) 요소 중 하나이며, 순서는 정렬 할 데이터 요소가 될 때까지 시퀀스 수의 끝에 있습니다. 알고리즘은 불안정하고, O (1)의 추가 공간, 비교 시간 복잡성은 O (n^2)이며 교환의 시간 복잡성은 O (n)이며, 이는 적응하지 않습니다. 대부분의 경우 권장되지 않습니다. 교환 수를 줄이려는 경우에만.
기본 아이디어
n- 녹음 된 파일의 파일의 직접 선택은 N-1 여행을 통해 직접 선택하여 순서대로 결과를 얻을 수 있습니다.
① 초기 상태 : 무질서한 영역은 r [1..n]이고 질서 영역은 비어 있습니다.
첫 번째 종류는 무질서한 영역 r [1..n]에 정렬되어 최소 레코드 r [k]를 선택하고 무질서한 영역에서 첫 번째 레코드 r [1]과 교환합니다. 2..N]은 레코드 수의 새로운 순서 영역과 여러 레코드가 1이고 레코드 수가 1 씩 감소한 새로운 무질서 영역으로 변경됩니다.
님프
③ 정렬 II
i 종류의 I의 시작 부분에서, 현재 순서대로 영역 및 장애 영역은 R [1..i-1] 및 R (1≤i≤n-1)입니다. 이러한 종류는 현재 무질서한 영역에서 최소 레코드 r [k]를 선택하고 무질서한 영역의 첫 번째 레코드 r과 교환하여 R [1..i]와 R이 새로운 주문 수로 분리됩니다 수의 영역과 다수의 기록이있는 새로운 무질서 영역은 1 씩 감소했습니다.
이러한 방식으로, n- 녹음 된 파일의 파일의 직접 선택을 N-1 트립으로 직접 선택하여 순서대로 결과를 얻을 수 있습니다.
코드 구현
공개 클래스 테스트 {public static int [] a = {10,32,1,9,7,12,0,4,3}; {int i; 사이클링 카운트 변수 int index = a.length; printf ( "%3s", a). i ++). out.printf // 최소 값 변수 int temp; (j = i; j <in <index; j ++) {if (a [j] <minvalue)에 대한 최소값의 값 {minvalue {minvalue = a [j]; / 스토리지 최소 Indexmin = j;} emp = a; k (k = 0; k <index; k ++) system.out.out.printf ( "%3s", a [k]); system.out.println ( "");}}}}}}
버블 링 분류 방법과 마찬가지로 외부 층 사이클은 여전히 N-1 번을 수행해야하며 효율은 여전히 열악합니다.
이 기사는 모든 사람의 Java 프로그램 설계에 도움이되기를 바랍니다.