#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 - 랩실 애들 세미나 출제용.

Prev
Rss Feed