c语言数据结构之 插入排序

算法:从第二个元素开始,与前一个元素进行比较,如果小于前一个元素,两者交换位置,一直循环到不再小为止

编译器:VS2013

代码

 1 #include "stdafx.h"
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 
 5 //函数声明
 6 void InsertSort(int a[], int n);    //插入排序(从小到大)
 7 
 8 int main()
 9 {
10     int i, n, a[100];
11     printf("请输入需要排序元素的个数:");
12     scanf_s("%d", &n);
13     printf("随机生成的数组为:");
14     for (i = 1; i <= n; i++)
15     {
16         a[i] = rand() % 100 + 1;
17         printf("%d ", a[i]);
18     }
19     a[i] = '\0';
20     printf("\n");
21 
22     InsertSort(a, n);
23 }
24 
25 //插入排序(从小到大)
26 void InsertSort(int a[], int n)
27 {
28     int i = 2, j;
29     while (i <= n)
30     {
31         j = i;
32         a[0] = a[i];
33         while (a[j] < a[j - 1])
34         {
35             a[j] = a[j - 1];
36             a[j - 1] = a[0];
37             j--;
38         }
39         i++;
40     }
41     printf("插入排序后的结果(从小到大):");
42     for (i = 1; i <= n; i++)
43         printf("%d ", a[i]);
44     printf("\n\n");
45 }

 

结果

posted on 2016-12-22 00:45  么么打123  阅读(354)  评论(0编辑  收藏  举报