자바 정렬 의 힐 정렬 인 스 턴 스 삽입
자바 코드
/* (Shell Sort) 。 : n d1 , d1
* , d1 , ; , d2<d1, ,
* dt=1(dt<dt-1<...<d2<d1), 。
* new int[]{8,5,1,7,9,4,6}, 3 ,[[6][3][0] ,[4] [1] ,[5] [2] ,
* 1, [1] [0] ,[2][1][0]...., 。*/
public static void shellSort(int[] intArray) {
System.out.print(" : ");
for(int k=0;k<intArray.length;k++)
System.out.print(" "+intArray[k]+" ");
System.out.println();
int arrayLength=intArray.length;
int j,k;//
int temp;//
boolean isChange;//
int dataLength;//
int pointer;//
dataLength=arrayLength/2;//
while(dataLength!=0){//
//
for(j=dataLength;j<arrayLength;j++){
isChange=false;
temp=intArray[j];// ,
pointer=j-dataLength;//
//
while(temp<intArray[pointer]&&pointer>=0&&pointer<arrayLength){
intArray[pointer+dataLength]=intArray[pointer];
//
pointer=pointer-dataLength;
isChange=true;
System.out.print("every changing result: ");
for(k=0;k<arrayLength;k++)
System.out.print(" "+intArray[k]+" ");
System.out.println();
if(pointer<0||pointer>arrayLength)
break;
}
//
intArray[pointer+dataLength]=temp;
if(isChange){
System.out.print("Current sorting result: ");
for(k=0;k<arrayLength;k++)
System.out.print(" "+intArray[k]+" ");
System.out.println();
}
}
System.out.print(" "+dataLength+", ,Current sorting result: ");
for(k=0;k<arrayLength;k++)
System.out.print(" "+intArray[k]+" ");
System.out.println();
dataLength=dataLength/2;//
}
}
실행 후 결 과 는:자바 코드
: 8 5 1 7 9 4 6
every changing result: 8 5 1 8 9 4 6
Current sorting result: 7 5 1 8 9 4 6
every changing result: 7 5 1 8 9 4 8
every changing result: 7 5 1 7 9 4 8
Current sorting result: 6 5 1 7 9 4 8
3, ,Current sorting result: 6 5 1 7 9 4 8
every changing result: 6 6 1 7 9 4 8
Current sorting result: 5 6 1 7 9 4 8
every changing result: 5 6 6 7 9 4 8
every changing result: 5 5 6 7 9 4 8
Current sorting result: 1 5 6 7 9 4 8
every changing result: 1 5 6 7 9 9 8
every changing result: 1 5 6 7 7 9 8
every changing result: 1 5 6 6 7 9 8
every changing result: 1 5 5 6 7 9 8
Current sorting result: 1 4 5 6 7 9 8
every changing result: 1 4 5 6 7 9 9
Current sorting result: 1 4 5 6 7 8 9
1, ,Current sorting result: 1 4 5 6 7 8 9
분할 간격 이 1 일 때 정렬 을 직접 삽입 합 니 다.읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.