반응형
dackyy
대기의 연대기
dackyy
전체 방문자
오늘
어제
  • 분류 전체보기 (49)
    • java (7)
    • 코딩테스트 (23)
    • python (10)
    • Network (2)
    • Web (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 배열
  • 기본 자료형
  • 증감 연산자
  • java
  • switch
  • 참조 자료형
  • 조건문
  • 산술 연산자
  • 비트 연산자
  • 연산
  • 비교 연산자
  • 논리 연산자
  • TLS
  • 반복문
  • SSL
  • 제어문
  • 시프트 연산자
  • 배열생성
  • https
  • 자료형

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dackyy

대기의 연대기

코딩테스트

[JAVA] 쉘정렬

2022. 7. 23. 02:39
반응형
package Algorithm;

import java.util.Arrays;

public class Shell{
    static void shellSort(int[] arr){
        int n = arr.length;                     // 8배열이라고 가정
        for(int i = n/2; i > 0; i /= 2){        //배열 크기의 반을 구하고 반복마다 나누기 2씩 반복
            for(int k = i; k < n; k++){
                System.out.println("k : " + k);//i를 인덱스로 잡고 삽입정렬 시작 (단순 삽입정렬은 1부터 시작, 여기는 i부터)
                int j;
                int tmp = arr[k];               //인덱스 4 (5번째값) , 5, 6, 7, 8
                for (j = k-i; j >= 0 && arr[j] > tmp; j -= i) {
                    //인덱스 0,1,2,3,4 씩 k와 동일하게 이동 / 조건은 삽입정렬 그대로 / 숫자낮은 정렬 시행시 그전 정렬값 확인
                    System.out.println("j : " + j);
                    arr[j + i] = arr[j];
                }
                arr[j + i] = tmp;
            }
            System.out.println(Arrays.toString(arr));
        }
    }

    public static void main(String[] args) {
        int[] arr = {8,1,4,2,7,6,3,5};
        shellSort(arr);
    }
}
반응형

'코딩테스트' 카테고리의 다른 글

[JAVA] 최대공약수 찾기  (0) 2022.07.23
[JAVA] 하노이 탑 알고리즘  (0) 2022.07.23
[JAVA] 단순 삽입정렬  (0) 2022.07.18
[JAVA] 단순 선택정렬  (0) 2022.07.18
[JAVA] Stack를 사용한 깊이우선 탐색 (DFS) Stack제네릭 사용 X  (0) 2022.07.15
    '코딩테스트' 카테고리의 다른 글
    • [JAVA] 최대공약수 찾기
    • [JAVA] 하노이 탑 알고리즘
    • [JAVA] 단순 삽입정렬
    • [JAVA] 단순 선택정렬
    dackyy
    dackyy

    티스토리툴바