码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序(C语言)

时间:2015-04-19 15:53:49      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

输入一个数,插入到已排序的队列中 

第一:定义一个已经排好的整型数组

        如:

           int arry[7]={2,3,5,11,15,17};

    或输入一串整型的数组,再排序(冒泡、选择都可以)

       下面我们用冒泡排序方法:

             #include<stdio.h>
             int main()
             {
              int i,j,min=0, num[7];
              for(i=0;i<6;i++)
              {
         	printf("请输入第%d个数",i+1);
   	        scanf("%d",&num[i]);
               }
           for(j=0;j<6;j++)
           {
	        for(i=0;i<6;i++)
	         {
	   	    if(num[i]>num[i+1])
	   	       {
	   	   	  min=num[i+1];
	   	   	  num[i+1]=num[i];
	   	   	  num[i]=min;
		       }
	         }
            }
         for(i=0;i<6;i++)
         {
         	 printf("   %d ",num[i]);
         }
return 0;        }

第二:输入一个数num1;

        代码:

      int num1;
      printf("请数入一个是数:");
      scanf("%d",&num1);

第三:找到输入数插入的位置(找到下标index)

   分三种情况   

     ①、num1大于前一个数,小于后一个数

     ②、num1小于最小的数

     ③、num1大于最大的数   

   int i=0;
   int index=0;
   for(i;i<6;i++)//找到index要插入的下标位置
   {
     if(num1>=num[i]&&num1<=num[i+1])
        {
        index=i+1;
        break;
        }
     if(num1<num[0])
	 {
 		index=0;
 		break;
 	 }
     if(num1>num[5])
	 {
 		index=6;
 		break;
 	 }
   }

第四:找到下标后(插入的位置),从插入的位置开始到数组结束之间的数,后面一个等于前面一个值(实现移动赋值过程) 

   for(i=6;i>index;i--)//移动
   {
   	num[i]=num[i-1];
   }
   num[index]=num1;//找到下标赋值

第五:输出数组num

   for(i=0;i<7;i++)
   {
   	printf("%d,",num[i]);
   }

     整体代码如下:

#include<stdio.h>
int main(void)
{

    int num[7]={2,3,5,11,15,17},num1;
   printf("请数入一个是数:");
   scanf("%d",&num1);
   int i=0;
   int index=0;
   for(i;i<6;i++)//找到index要插入的下标位置
   {
     if(num1>=num[i]&&num1<=num[i+1])
        {
        index=i+1;
        break;
        }
     if(num1<num[0])
	 {
 		index=0;
 		break;
 	 }
     if(num1>num[5])
	 {
 		index=6;
 		break;
 	 }
   }

   for(i=6;i>index;i--)//移动
   {
   	num[i]=num[i-1];
   }
   num[index]=num1;//找到下标赋值
   for(i=0;i<7;i++)
   {
   	printf("%d,",num[i]);
   }
}

  

  

  

 

       

插入排序(C语言)

标签:

原文地址:http://www.cnblogs.com/beta-data/p/4439183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!