메뉴 건너뛰기

Programing

C언어 게시판

삽입정렬 사용하기

관리자2 2018.12.19 19:35 조회 수 : 166

#include <stdio.h>

 

int main() {

  

  int arr[10] = { 9, 17, 5, 6, 124, 112, 1, 3, 87, 55 };

  int i, j; // 반복문에 사용할 변수

  int temp; // 두 값을 바꿀 때 사용할 변수

  int length = sizeof(arr) / sizeof(int);

printf("정렬 전 : ");

for(i=0;i<length;i++){

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

}

for(i=1;i<length;i++){

temp=arr[i];

j=i-1;

while(j>=0&&arr[j]>temp){

arr[j+1]=arr[j];

j--;

}

arr[j+1]=temp;

}

printf("정렬 후 : ");

for(i=0;i<length;i++){

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

}

  return 0;

}

_______________________________________________________________________________
#include <stdio.h>
 
int main() {
  
  int arr[10] = { 9, 17, 5, 6, 124, 112, 1, 3, 87, 55 };
  int i, j; // 반복문에 사용할 변수
  int temp; // 두 값을 바꿀 때 사용할 변수
  int length = sizeof(arr) / sizeof(int);
printf("정렬 전 : ");
for(i=0;i<length;i++){
printf("%d ", arr[i]);
}
for(i=1;i<length;i++){
temp=arr[i];
j=i-1;
while(j>=0&&arr[j]<temp){
arr[j+1]=arr[j];
j--;
}
arr[j+1]=temp;
}
printf("정렬 후 : ");
for(i=0;i<length;i++){
printf("%d ", arr[i]);
}
  return 0;
}
위의 코드는 오름차순, 밑의 코드는 내림차순이다.
가운데 while문 조건의 뒷부분 부등호를 바꾸어주면 정렬의 기준이 바뀐다.
삽입정렬은 자신보다 크거나 작은 요소를 찾을 때까지 이동하면서 자리를 바꿉니다.
위로