JAVA 정렬 알고리즘 구현 코드-힐 셸 정렬
JAVA 정렬 알고리즘 구현 코드-힐 셸 정렬
/**
* JAVA 정렬 알고리즘 구현 코드-힐 셸 정렬.
*
* @author 노 자 죽 JAVA 세기 망(java 2000.net)
*
*/
public class Test {
public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // 미리 설 정 된 데이터 배열
public static void main(String args[]) {
int i; // 순환 계수 변수
int Index = a.length;// 데이터 인덱스 변수
System.out.print("정렬 전: ");
for (i = 0; i < Index - 1; i++)
System.out.printf("%3s ", a[i]);
System.out.println("");
ShellSort(Index - 1); // 정렬 선택
// 정렬 후 결과
System.out.print("정렬 후: ");
for (i = 0; i < Index - 1; i++)
System.out.printf("%3s ", a[i]);
System.out.println("");
}
public static void ShellSort(int Index) {
int i, j, k; // 순환 계수 변수
int Temp; // 임시 저장 변수
boolean Change; // 데이터 변경 여부
int DataLength; // 분할 집합 간격 길이
int Pointer; // 처리 위치
DataLength = (int) Index / 2; // 초기 집합 간격 길이
while (DataLength != 0) // 수열 은 여전히 분할 할 수 있다.
{
// 각 집합 을 처리 하 다
for (j = DataLength; j < Index; j++) {
Change = false;
Temp = a[j]; // 데이터[j]의 값 을 임시 저장 하고 교환 할 때 사용 합 니 다.
Pointer = j - DataLength; // 처리 할 위 치 를 계산 하 다
// 집합 내 수치의 비교 와 교환 값 을 진행 하 다
while (Temp < a[Pointer] && Pointer >= 0 && Pointer <= Index) {
a[Pointer + DataLength] = a[Pointer];
// 다음 처리 할 위 치 를 계산 하 다.
Pointer = Pointer - DataLength;
Change = true;
if (Pointer < 0 || Pointer > Index)
break;
}
// 마지막 수치 와 교환
a[Pointer + DataLength] = Temp;
if (Change) {
// 현재 정렬 결과 인쇄
System.out.print("정렬 중: ");
for (k = 0; k < Index; k++)
System.out.printf("%3s ", a[k]);
System.out.println("");
}
}
DataLength = DataLength / 2; // 다음 분할 의 간격 길 이 를 계산 합 니 다.
}
}
}
/**
* JAVA - Shell 。
*
* @author JAVA (java2000.net)
*
*/
public class Test {
public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; //
public static void main(String args[]) {
int i; //
int Index = a.length;//
System.out.print(" : ");
for (i = 0; i < Index - 1; i++)
System.out.printf("%3s ", a[i]);
System.out.println("");
ShellSort(Index - 1); //
//
System.out.print(" : ");
for (i = 0; i < Index - 1; i++)
System.out.printf("%3s ", a[i]);
System.out.println("");
}
public static void ShellSort(int Index) {
int i, j, k; //
int Temp; //
boolean Change; //
int DataLength; //
int Pointer; //
DataLength = (int) Index / 2; //
while (DataLength != 0) //
{
//
for (j = DataLength; j < Index; j++) {
Change = false;
Temp = a[j]; // Data[j] ,
Pointer = j - DataLength; //
//
while (Temp < a[Pointer] && Pointer >= 0 && Pointer <= Index) {
a[Pointer + DataLength] = a[Pointer];
//
Pointer = Pointer - DataLength;
Change = true;
if (Pointer < 0 || Pointer > Index)
break;
}
//
a[Pointer + DataLength] = Temp;
if (Change) {
//
System.out.print(" : ");
for (k = 0; k < Index; k++)
System.out.printf("%3s ", a[k]);
System.out.println("");
}
}
DataLength = DataLength / 2; //
}
}
}
실행 결과
정렬 전:10 32 1 9 5 7 12 0 4
정렬 중:5 32 1 9 10 7 12 0 4
정렬 중:5,7,1,9,10,32,12,0,4
정렬 중:5,7,1,0,10,32,12,9,4
정렬 중:4,7,1,0,5,32,12,9,10
정렬 중:1,7,4,0,5,32,12,9,10
정렬 중:1,0,4,7,5,32,12,9,10
정렬 중:1,0,4,7,5,9,12,32,10
정렬 중:1,0,4,7,5,9,10,32,12
정렬 중:0,1,4,7,5,9,10,32,12
정렬 중:0,1,4,5,7,9,10,32,12
정렬 중:0,1,4,5,7,9,10,12,32
정렬 후:0,1,4,5,7,9,10,12,32
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.