插入排序

#include<stdio.h>
//插入排序
void InsertSort(int *arr,int n)
{
    int temp=0;
    for(int i=1;i<n;i++)    //默认第一个元素已经排序,向后扫描其他元素
    {
        int j=i-1;
        int temp=arr[i];    //从未排序数组中取出元素
        while(j>=0 && temp<arr[j])      //若该数比已排序数小,则将已排序的数后移一位
        {
            arr[j+1]=arr[j];
            j--;
        }
        arr[j+1]=temp;      //因为上面拍好序后又进行了j--,所以此处将未排序的temp插入j+1位置
    }
}
int main()
{
    int arr[10]={1,4,2,9,6,3,0,8,5,7};
    InsertSort(arr,10);
    for(int i=0;i<10;i++)
    {
        printf("%d\t",arr[i]);
    }
    printf("\n");
    return 0;
}

 

上一篇:insertSort


下一篇:算法基础二:渐增型算法---插入排序