主函数
1 //排序主函數
2 #include <stdio.h>
3 void main()
4 {
5 int ss[10]={5,0,6,3,1,8,4,9,7,2};
6 int i;
7 for(i=0;i<10;i++)
8 printf("%d ",ss[i]);
9 printf("\n");
10 //ss=Sort(ss);
11 D_sort(ss,10);
12 for(i=0;i<10;i++)
13 printf("%d ",ss[i]);
14 printf("\n");
15 }
1 //直接插入排序
2 #include <stdio.h>//使用了printf等一些函数这个必须有3 void D_sort(int str[],int length)
4 {int i,j,temp;
5 for(i=1;i<length;i++)
6 {
7 for(j=i;j>=1;j--)
8 {
9 if(str[j-1]>str[j])
10 {
11 temp=str[j-1];
12 str[j-1]=str[j];
13 str[j]=temp;
14 }else
15 {
16 break;
17 }
18 }
19 for(j=0;j<length;j++)
20 printf("%d ",str[j]);
21 printf("\n");
22 }
23 }
在linux下分别生成main.c和D_sort.c文件
gcc -c main.c -g -o main.o //-g是调试所需要的参数
gcc -c D_sort.c -g -o D_sort.o
gcc -o main main.o D_sort.o //这里的main就是生成的可执行命令
./main
结果
需要排序的数据 5 0 6 3 1 8 4 9 7 2
5 0 6 3 1 8 4 9 7 2
0 5 6 3 1 8 4 9 7 2
0 5 6 3 1 8 4 9 7 2
0 3 5 6 1 8 4 9 7 2
0 1 3 5 6 8 4 9 7 2
0 1 3 5 6 8 4 9 7 2
0 1 3 4 5 6 8 9 7 2
0 1 3 4 5 6 8 9 7 2
0 1 3 4 5 6 7 8 9 2
0 1 2 3 4 5 6 7 8 9
算法原理:每次插入一个数据,与前面的数据逐个比较。