🧩
【Java】シェルソート
この記事は、「新・明解Javaで学ぶアルゴリズムとデータ構造」を読んで学んだことを、個人的な備忘録目的でまとめています。
ただし、本を参考にして自分なりに構成やコードを変更しているためご注意ください。
アルゴリズムの詳細や解説は是非参考書をお手に取って読まれてください。
【リンク紹介】
・Javaで学ぶアルゴリズムとデータ構造
・これまで書いたシリーズ記事一覧
タイトル
package chap06;
import java.util.Scanner;
public class ShellSort {
//--- シェルソート ---//
static void shellSort(int[] a, int n) {
for (int h = n / 2; h > 0; h /= 2) {
for (int i = h; i < n; i++) {
int j;
int tmp = a[i];
for (j = i - h; j >= 0 && a[j] > tmp; j -= h) {
a[j + h] = a[j];
}
a[j + h] = tmp;
}
}
}
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("シェルソート");
System.out.print("要素数:");
int nx = stdIn.nextInt();
int[] x = new int[nx];
for (int i = 0; i < nx; i++) {
System.out.print("s[" + i + "]");
x[i] = stdIn.nextInt();
}
shellSort(x, nx);
System.out.println("昇順にソートしました。");
for (int i = 0; i < nx; i++) {
System.out.println("x[" + i + "]=" + x[i]);
}
}
}
学習内容まとめ
eclipse操作時に役立つショートカットまとめ
ご協力のほどよろしくお願いします。
Discussion