直接插入排序

来源:互联网 发布:链轮设计软件 编辑:程序博客网 时间:2024/06/11 05:27

插入排序— 直接插入排序

直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表

例如,待排序的一组记录的初始排列
49 38 65 97 76 13 27 49,其排序过程如下图所示:

代码实现:

#include <stdio.h>#include <stdlib.h>//打印排序结果void sout(int num[] , int n ,int i){    int j;    printf("第 %d 次",i);    for (j=0 ; j<n ; j++)    {        printf("%d ",num[j]);    }}//排序void sort(int num[],int n){    int i , j , temp ;    for (i=1 ; i<n ; i++)    {        if (num[i]<num[i-1])        {            //哨兵            temp = num[i];            for (j=i-1 ; num[j]>temp ; j--)            {                num[j+1] = num[j];            }            num[j+1] = temp;        }        sout(num,n,i);        printf("\n");    }}int main(void){    int num[]={1,5,9,7,6,3,2};    int n = 7,i;    sort(num,n);    for (i=0 ; i<7 ; i++)    {        printf("%d ",num[i]);    }    return 0;}

时间复杂度:O(n^2)

0 0