이 기사의 예는 여러 Java 정렬 알고리즘의 구현 및 간단한 분석을 알려줍니다. 참조를 위해 모든 사람을 위해 공유하십시오. 세부 사항은 다음과 같습니다.
패키지 테스트; 공개 클래스 첫 번째 {/*공개 void insertsort (int i, j) [0] = -999; 베트남인, // 배열의 요청은 두 번째 숫자에서 시작하는지 여부가 결정됩니다 [j] <int temp = list [j -1]; 기준, 이진 검색 추가*/장소 void bininsertsort (int [] r, int low, int high) {for (int i = low+1; i <= high; i ++) {int temp = r [i]; // int hi = i -1을 저장합니다. // 초기 간격을 설정하십시오. if (if (if (if + hi) / 2; if (temp <r [mid]) hi = mid -1; elselo = mid + 1;} for (int j = i -1; j> hi; j r [j + 1] = r [j]; int [] r, int low, int high, int [] delta) {for (for (for (] int k = 0; k <delngth; k ++) shellinsert (r, low, high, delta [ k]);} private void shellinsert (int [] r, int low, int deldak) {for (int i = low+deltak; i <= high; i ++) if (r [i] <r [i- deltak]) {int temp = r [i]; ; +) {// n -1로 int min min = k; <r [min]) min = i if (k! = min) {int temp = r [k]; Min; i = n/2; i-) HeaPadjust (r, i, n); 1은 1; ] r [i] = hepadjust (r, 1, int high) {int temp = r]; j <= high; r [j]; low = j;} r [low] = (string [] args) {int [] a = {100, 9, 9, 7, 7. 0, 99, 55, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 3, 2, 1}; fs.insertsort (a); , 0, A.length-1);
삽입, 교환 정렬, 선택 분류, 합병 분류 및 기타 분류 방법은 공통적 인 특성을 가지고 있습니다. 즉, 비교 요소를 통해 요소 간의 상대적 위치를 결정합니다. 아래에서 비교 분류 방법을 기반으로 비교하고 요약합니다.
우리는 주로 알고리즘의 평균 시간 복잡성, 최악의 시간 복잡성, 공간의 복잡성 및 분류의 안정성의 분류 방법을 비교합니다.
정렬 방법 평균 시간 복잡성 최악 ) (n log n) l (n2) ο (log n) 불안정하고 간단히 정렬 ο (n2) ο (1) ο (1) 불안정한 힙 정렬 (n log n) ο (n log n) ο (n log n) ο (n log) 1) 불안정한 합병 정렬 ο (n log n) ο (n log n) ο (n) 안정
시간 성능 측면에서 빠른 정렬은 모든 정렬 알고리즘에서 최고의 실제 성능입니다. 이것은 빠른 정렬을 변경하여 피벗 요소를 무작위로 선택하면 최악의 상황을 매우 작게 만들 수 있습니다. 스택 정렬 및 합병 분류의 비교에서 N이 클 경우 합병 및 정렬에 필요한 시간은 적지 만 보조 저장 공간이 더 필요합니다.
방법 안정성의 관점에서 볼 때, 대부분의 시간 복잡성은 정렬 선택을 제외하고는 안정적인 정렬 방법입니다. 빠른 분류, 스태킹 정렬 및 Hill의 분류와 같은 성능이 우수한 대부분의 분류 방법은 불안정합니다. 일반적으로, 분류 프로세스 간의 비교의 분류 방법은 안정적입니다.
또한, 정렬 방법의 안정성은 설명 형식에 관계없이 불안정한 정렬 방법에 의해 결정됩니다.
요약하면, 위에서 논의 된 분류 방법 중 어느 것도 실제 사용 프로세스에서 적절한 정렬 방법을 선택해야합니다.
이 기사는 모든 사람의 Java 프로그램 설계에 도움이되기를 바랍니다.