[필기시험 문제] 정렬 삽입

정렬 을 삽입 하 는 것 은 모두 가 잘 알 고 있 습 니 다. 답 을 보지 않 으 면 몇 분 안에 다음 코드 의 오 류 를 찾 을 수 있 습 니까?
#include<stdio.h>

void insert_sort(int arr[])
{
    int i,j,temp;
    for (i=1;i<8;i++)
    {   
        temp=arr[i];
        j=i-1;
        for(j;j>=0,arr[j]>arr[i];--j)                                                                                                                                         
        {   
            arr[j+1]=arr[j];
        }   
        arr[j+1]=temp;
    }   
}

void main()
{
    int i;
    int a[8]= {3,13,9,100,6,8,10,58};
    for(i=0;i<8;i++)
    {   
        printf("%d,",a[i]);
    }   
    insert_sort(a);
    printf("
",i,a[i]); printf("after sorted a[8]
"); for(i=0;i<8;i++) { printf("%d,",a[i]); } }

정 답:
//        for(j;j>=0,arr[j]>arr[i];--j) //wrong, cause arr[i] is corrupted when arr[j+1]=arr[j];                                                                            
        for(j;j>=0,arr[j]>temp;--j)

좋은 웹페이지 즐겨찾기