본문 바로가기
🧮알고리즘

[20211020] 쉘 정렬

by 캔 2021. 10. 20.
package Day14;

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.println("요소수:");
		int nx = stdIn.nextInt();
		int x[] = new int[nx];
		for(int i=0;i<nx;i++) {
			System.out.print("x["+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]);
		}

	}

}

'🧮알고리즘' 카테고리의 다른 글

버킷 정렬  (0) 2021.10.30
[20211021] 퀵 정렬  (0) 2021.10.22
[20211008] 삽입 정렬  (0) 2021.10.08
[20211007] 버블 정렬  (0) 2021.10.07
[20211006] 선택 정렬  (0) 2021.10.06