이 기사의 예에서는 JAVA의 네 가지 기본 정렬 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
JAVA에는 버블 방식, 삽입 방식, 선택 방식, SHELL 정렬 방식 등 4가지 기본 정렬 방식이 있으며, 선택 방식은 버블 방식을 개선한 것이고, SHELL 정렬 방식은 삽입 방식을 개선한 것입니다. 기본적으로는 정리할 수 있습니다. 정렬 방법은 삽입 방법과 버블 방법 두 가지가 있습니다
1 삽입방법 :
정렬된 컬렉션을 순회하며 요소에 도달할 때마다 이 요소를 순회하여 이전의 모든 요소와 비교하며 정렬 순서를 충족하는 요소는 컬렉션에 표시되어야 하는 위치로 하나씩 이동됩니다. 현재 범위. 교환은 인접 순회 이동과 이중 루프 제어로 구현됩니다. 이 정렬 방법은 로컬 스네이크 유형에 속합니다. 내 랜드 카드에서는 모든 것을 특정 순서로 배열해야 합니다.
처리 코드는 다음과 같습니다.
public void sort(int[] data) { int temp; for(int i=1; i〈data.length; i++){ for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){ temp=date[j]; data[j]=data[j-1]; data[j-1]=temp; } } }
2 버블 방식:
내부 루프는 한 번의 순회 후 세트의 가장 작은(가장 큰) 요소가 올바른 위치에 나타나고 다음 번에는 다음으로 가장 작은 요소가 되도록 보장합니다. . . 이 방법은 다양한 집합 분포 상황에서 기본적으로 동일한 수의 교환 이동을 가지며 가장 느린 정렬입니다. 구현 역시 이중 루프 제어입니다. 이 분류 방법은 극단을 찾는 것을 의미하는 도강용에 속합니다. 그러나 강도강에도 장형, 둘째 형 등이 있으므로 장형과 둘째 형만 선택할 수 있습니다.
처리 코드는 다음과 같습니다.
public static int [] maopao(int[] data) { int temp; for(int i=0; i〈data.length-1; i++){ for(int j=i+1; j〈data.length; j++){ if(data[i]〈data[j]){ temp=data[i]; data[i]=data[j]; data[j]=temp; } } } return data;
세 가지 선택 방법:
이 방법은 집합을 순회하여 가장 작은(큰) 요소의 위치만 기록합니다. 한 번의 순회 후 버블링과 유사한 위치 교환 작업을 수행합니다. 그러나 비교 과정에서는 스왑 작업이 수행되지 않습니다. , 요소의 위치만 기록됩니다. 순회당 하나의 교환 작업만 수행됩니다. 이 쌍은 교환 순서에 시간이 많이 걸리는 요소에 더 적합합니다. 이 정렬 방법은 버블 방식보다 훨씬 더 깊습니다. 극단적인 데이터를 먼저 기억한 다음 데이터를 순회한 후 처리합니다. 나보다 조금 더 극단적인 경우에만 처리하면 되는 버블 방식과 달리 선택은 메소드는 해당 범위 내에서 가장 극단적인 데이터만 처리합니다.
public static void xuanze(int[] data) { int temp; for (int i = 0; i 〈 data.length; i++) { int lowIndex = i; for (int j = data.length - 1; j 〉 i; j--) { if (data[j] 〉 data[lowIndex]) { lowIndex = j; } } temp=data[i]; data[i]=data[lowIndex]; data[lowIndex]=temp; } }
4개의 쉘 정렬:
삽입 정렬의 개선 사항으로, 정렬 기준에 따라 집합 요소를 그룹으로 나누어 각 그룹이 먼저 로컬 범위 내에서 기본 순서로 정렬되고 최종적으로 모든 요소가 한 번 정렬됩니다. 삽입 정렬.
public void sort(int[] data) { for(int i=data.length/2; i〉2; i/=2){ for(int j=0; j〈i; j++){ insertSort(data,j,i); } } insertSort(data,0,1); } private void insertSort(int[] data, int start, int inc) { int temp; for(int i=start+inc; i〈data.length; i+=inc){ for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){ temp=data[j]; data[j]=data[j-inc] data[j-inc]=temp; } } }
이 기사가 모든 사람의 Java 프로그래밍 설계에 도움이 되기를 바랍니다.