ホームページ  >  記事  >  Java  >  Javaでのシェルソート

Javaでのシェルソート

WBOY
WBOYオリジナル
2024-08-30 15:32:33308ブラウズ

シェル ソートは、Java プログラミング言語を使用して、指定された数値または配列をソートするアルゴリズムです。これは、要件に従って要素を並べ替えるための挿入並べ替えアルゴリズムに基づいています。分割された数値を使用したソート要素であり、遠く離れた要素を比較します。 Java言語を使用して要素を昇順または降順で設定するアルゴリズムです。これは要素内の分割された配列であり、Java を使用して 1 つの要素を別の個別の要素と比較します。互いに遠く離れた 2 つの要素を比較する並べ替え手順です。 シェル ソートは、配列要素を配置するための挿入ソート方法を一般化したものです。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文

Java を使用したシェルのソート構文は以下のとおりです。

int array_length = shell_array.length;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2)
{
int j, i;
for ( i = elemnt_gap; i < array_length; i += 1)
{
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}

説明:

  • 「array_length 」は、シェルのソート用に指定された配列の長さです。
  • 「elemnt_gap」変数を使用して、2 つの要素の間にギャップを作成できます。
  • 「for ループ」を使用して、配列要素内の変数を走査します。
  • 「temprary_elemnt」は配列要素の並べ替えに使用されます。
  • これで、シェルの昇順ソートを開始できます。

Java でのシェルのソートはどのように機能しますか?

  • Java でプライマリ クラスを作成します。
public class Shell{ … }
  • 配列変数を使用してシェルソートするためのメソッドを作成します。
int shellSort(int shell_array[]) { … }
  • 指定された必須配列の配列長を作成します。
int array_length = shell_array.length;

配列要素を並べ替えるには、2 つの要素の間に隙間を作ります。

for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
write shell sort algorithm here…
}

シェルソートアルゴリズムを「for ループ」内に配置します。

このアルゴリズムは配列要素をテーブル形式に配置します。 小さい要素は列の左側に配置され、大きい数値は列の右側に配置されます。

for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
int j, i;
for ( i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
int j;
for (j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;

main メソッドを作成し、並べ替え要素を返します。

public static void main(String args[]) {
int shell_array[] = { 1, 4, 5, 2, 3 };
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are: ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
System.out.println();
}

以下にさまざまな例を示します:

例 #1: 単一の数値

コード:

import java.util.Arrays;
public class Shell {
int shellSort(int shell_array[]) {
int array_length = shell_array.length;
int j, i;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
for (i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;
}
public static void main(String args[]) {
int shell_array[] = { 8, 1, 4, 5, 2, 6, 3, 9, 7};
System.out.println("given array elements are : ");
System.out.println(Arrays.toString(shell_array));
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are : ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
}
}

出力:

Javaでのシェルソート

例 #2: 2 倍の数値

コード:

import java.util.Arrays;
public class Shell {
int shellSort(int shell_array[]) {
int array_length = shell_array.length;
int j, i;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
for (i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;
}
public static void main(String args[]) {
int shell_array[] = { 81, 17, 44, 58, 23, 69, 32, 90, 75};
System.out.println("given array elements are : ");
System.out.println(Arrays.toString(shell_array));
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are : ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
}
}

出力:

Javaでのシェルソート

例 #3: 複数の数値

コード:

import java.util.Arrays;
public class Shell {
int shellSort(int shell_array[]) {
int array_length = shell_array.length;
int j, i;
for (int elemnt_gap = array_length / 2; elemnt_gap > 0; elemnt_gap = elemnt_gap /2) {
for (i = elemnt_gap; i < array_length; i += 1) {
int temprary_elemnt = shell_array[i];
for ( j = i; j >= elemnt_gap && shell_array[j - elemnt_gap] > temprary_elemnt; j -= elemnt_gap)
shell_array[j] = shell_array[j - elemnt_gap];
shell_array[j] = temprary_elemnt;
}
}
return 0;
}
public static void main(String args[]) {
int shell_array[] = { 888, 1, 44, 5573, 24, 6, 543, 901, 7000};
System.out.println("given array elements are : ");
System.out.println(Arrays.toString(shell_array));
Shell shell = new Shell();
shell.shellSort(shell_array);
System.out.println("shell sort elements are : ");
int array_length = shell_array.length;
for (int i = 0; i < array_length; ++i)
System.out.print(shell_array[i] + " ");
}
}

出力:

Javaでのシェルソート

説明:

  • 指定された複数種類の数値を確認できます。
  • シェルのソートにより要素間に違いが生じます。
  • 次に、配列を昇順に並べ替えます。

結論

  • Java のシェル ソートは、ユーザーの要件に従って配列要素を配置するのに役立ちます。
  • Web アプリケーションが整理され、シンプルで理解しやすくなります。
  • シェルソートは複雑さを排除してデータを整理し、ユーザーフレンドリーなアプリケーションを作成します。

以上がJavaでのシェルソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。