🧩

【Java】シェルソート

2024/12/16に公開

この記事は、「新・明解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操作時に役立つショートカットまとめ
https://qiita.com/toshi0383/items/1d2a990392998789062c

\bf{\textcolor{red}{記事が役に立った方は「いいね」を押していただけると、すごく喜びます \ 笑}}
ご協力のほどよろしくお願いします。

Discussion