您的位置:首页 > 运维架构 > Linux

Linux下c直接插入排序算法

2014-11-10 10:21 69 查看
主函数

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 31 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

算法原理:每次插入一个数据,与前面的数据逐个比较。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: