经典排序算法:插入排序Insertion sort

插入排序

插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入排序留到“查找”内容中进行。
图1演示了对4个元素进行直接插入排序的过程,共需要(a),(b),(c)三次插入。
经典排序算法:插入排序Insertion sort_第1张图片

代码:

#include 
void trace(int A[],int N){
    int i;
    for(i=0;iif(i>0)
            printf(" %d",A[i]);
        else
            printf("%d",A[i]);
    }
    printf("\n");
}
void insertionSort(int A[],int N){
    int i,j,v;
    for(i=1;i1;
        while(j>=0&&A[j]>v){
            A[j+1]=A[j];
            j--;
        }
        A[j+1]=v;
    }
    trace(A,N);
}
int main(){
    int N,i,j;
    int A[100];
    scanf("%d",&N);
    for(i=0;iscanf("%d",&A[i]);
    trace(A,N);
    insertionSort(A,N);
}

你可能感兴趣的:(算法,排序)