V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
lightryanking
V2EX  ›  C

这个 C 语言插入算法里面哪里出错了?

  •  1
     
  •   lightryanking · Dec 13, 2015 · 1641 views
    This topic created in 3794 days ago, the information mentioned may be changed or developed.

    include <stdio.h>

    include <string.h>

    void main()
    {
    void insert_sort(int arr[],int n);
    int a[10]={1,4,2,5,6,4,3,2,9,7},i;
    printf("before:\n");
    for(i=0;i<10;i++)
    printf("%d ",a[i]);
    insert_sort(a,10);
    printf("\n");
    printf("after:\n");
    for(i=0;i<10;i++)
    printf("%d ",a[i]);
    printf("\n");
    }
    void insert_sort(int arr[],int n)
    {
    int i,j,temp;
    for(i=1;i<n;i++)
    { temp=arr[i];j=i-1;
    do{
    arr[j+1]=arr[j];
    j--;
    }while(arr[j]>temp&&j>=0);
    arr[j+1]=temp;
    }
    }
    https://pic2.zhimg.com/0fa3b22573925c1eb4af0e895c53ec49_r.png

    firemiles
        1
    firemiles  
       Dec 13, 2015   ❤️ 1
    j=i;
    do{
    j--;
    arr[j+1]=arr[j];
    }while(arr[j]>temp&&j>=0);
    arr[j+1]=temp;
    }
    lightryanking
        2
    lightryanking  
    OP
       Dec 13, 2015
    @firemiles 谢谢您的解答
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   863 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 18:49 · PVG 02:49 · LAX 11:49 · JFK 14:49
    ♥ Do have faith in what you're doing.