고졸백수해킹일기

쉘 정렬 (shell sort) 본문

코딩

쉘 정렬 (shell sort)

ExploitSori 2018. 6. 11. 05:00

#include<stdio.h>

void shellSort(int a[],int n){

    int i,j,k,m=0,t;

    int tmp;

    for(t=n/2;t>0;t/=2){

        for(i=t;i<n;i++){

            tmp=a[i];

            for(j=i;j>=t;j-=t){

                if(tmp<a[j-t]){

                    a[j]=a[j-t];

                }

                else

                    break;

                a[j]=tmp;

            }

        }

        printf("step %d :",++m);

        for(k=0;k<n;k++)

            printf("%d \t",a[k]);

                    printf("\n");

    }

}

void main(){

    int arr[]={2,5,8,1,9,7,3,10};

    int i,c;

    c=sizeof(arr)/4;

    printf("정렬전 데이터 : ");

    for(i=0;i<c;i++)

        printf("%d \t",arr[i]);

        printf("\n");

    shellSort(arr,c);

    printf("정렬 후 데이터 : ");

    for(i=0;i<c;i++)

    printf("%d \t",arr[i]);

    printf("\n");

}



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

popup을 이용한 data 전달  (0) 2022.12.10
flutter 오늘의 깨우침  (0) 2021.09.18
flutter showDialog  (0) 2021.08.27
flutter 설치 시 --android-licenses 이슈  (0) 2021.08.22
삽입정렬 (insertion sort)  (0) 2018.06.11