直接插入排序法C程序设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫面,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后移动,为最新元素提供插入空间。

1#include

2#include "CreateData.c" //生成随机数的函数

3#define ARRAYLEN 10 //需要排序的数据元素数量

4

5void InsertSort(int a[], int n)

6{

7 int i,j,t;

8 for(i=1;i

9 {

10 t=a[i]; //去除一个未排序的数据

11 for(j=i‐1;i>=0 && t

12 a[j+1]=a[j]; //向后移动数据

13 a[j+1]=t; //插入数据到序列

14 }

15}

16

17int main()

18{

19 int a,a[ARRAYLEN]; //定义数组

20 for(i=0;i

21 a[i]=0;

22 if(!CreateData(a,ARRAYLEN,1,100)) //判断生成随机数是否成功

23 {

24 printf("生成随机数不成功!\n");

25 getch();

26 return 1;

27 }

28 printf("原数据:"); //输出生成的随机数

29 for(i=0;i

30 printf("%d ",a[i]);

31 printf("\n");

32 InsertSort(a,ARRAYLEN); //调用插入排序函数

33 printf("排序后:");

34 for(i=0;i

35 printf("%d ",a[i]);

36 printf("\n");

37 getch();

38 return 0;

39}

相关文档
最新文档