2008/04/29 00:03

교환정렬 버블정렬 선택정렬 삽입정렬

 

#include <stdio.h>


void Exchange_Sort(int []); // 교환정렬
void Bubble_Sort(int []); // 버블정렬
void Select_Sort(int []); // 선택정렬
void Insert_Sort(int []); // 삽입정렬
void Print(int []); // 정렬 된 배열출력


#define MAX 10

 

void main()
{
    int i, main_su[MAX], sub_su[MAX];
 
    printf("** 정렬할 수 %d개를 입력하십시오 **\n",MAX);
    printf("** 입력 배열 => ");
    for(i=0; i<MAX; i++){
        scanf("%d",&main_su[i]);
        sub_su[i] = main_su[i];
    }
 
    printf("\n\n** 교환 정렬 = > ");
    Exchange_Sort(sub_su);

    for(i=0; i<MAX; i++){   // 배열 상태 초기화
        sub_su[i] = main_su[i];
    }

    printf("** 버블 정렬 = > ");
    Bubble_Sort(sub_su);

    for(i=0; i<MAX; i++){   // 배열 상태 초기화
        sub_su[i] = main_su[i];
    }

    printf("** 선택 정렬 = > ");
    Select_Sort(sub_su);

    for(i=0; i<MAX; i++){   // 배열 상태 초기화
        sub_su[i] = main_su[i];
    }

    printf("** 삽입 정렬 = > ");
    Insert_Sort(sub_su);
}

 

void Exchange_Sort(int a[])
{
    int i, j, temp;
    for(i=0; i<MAX; i++){
        for(j=i+1; j<MAX; j++){
            if(a[i]>a[j]){
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }
    Print(a);
}

 

void Bubble_Sort(int a[])
{
    int i, j, temp;
    for(i=0; i<MAX; i++){
        for(j=0; j<MAX-1; j++){
            if(a[j]>a[j+1]){
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    Print(a);
}

 

void Select_Sort(int a[])
{
    int i, j, temp, min;
    for(i=0; i<MAX-1; i++){
        min = i;
        for(j=i+1; j<MAX; j++){
            if(a[min]>a[j])
                min = j;
        }
        temp = a[i];
        a[i] = a[min];
        a[min] = temp;
    }
    Print(a);
}

 

void Insert_Sort(int a[])
{
    int i, j, temp;
    for(i=1; i<MAX; i++){
        temp = a[i];
        j=i-1;
        while(j>=0 && a[j]>temp){
            a[j+1] = a[j];
            j--;
        }
        a[j+1] = temp;
    }
    Print(a);
}

 

void Print(int a[])
{
    int i;
    for(i=0; i<MAX; i++)
        printf("%d ",a[i]);
    printf("\n");
}

 

 

3년 전에 작성한 source - 랩실 애들 세미나 출제용.

[출처] 각종 정렬|작성자 조똥꼬

Trackback 0 Comment 0