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

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

如:

           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语言)的更多相关文章

  1. 插入排序_C语言_数组

    插入排序_C语言_数组 #include <stdio.h> void insertSort(int *); int main(int argc, const char * argv[]) ...

  2. 插入排序——C语言

    插入排序 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入.  (每步将一个待 ...

  3. 插入排序C语言版本

    算法思路:        每趟将一个待排序的元素作为关键字,按照其关键字值的大小插入到已经排好的部分的适当位置上,直到插入完成.        数组中待排序的关键字前面的数据为已经排序的数据,关键字插 ...

  4. 希尔排序——C语言

    希尔排序 希尔排序是插入排序的一种,又称“缩小增量排序”,希尔排序是直接插入排序算法的一种更高效的改进版本,关于插入排序可以看下这篇随笔:插入排序——C语言 (图片来源:https://www.cnb ...

  5. 2-路插入排序(2-way Insertion Sort)的C语言实现

    原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia   2-路插入排序(2-way Insertion Sort)的基本思想:     比fis ...

  6. 折半插入排序(Binary Insertion Sort)的C语言实现

    原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia   折半插入排序(Binary Insertion Sort)的基本思想是将新记录插入到已经 ...

  7. 直接插入排序(Straight Insertion Sort)的C语言实现

    原创文章,转载请注明来自钢铁侠Mac博客http://www.cnblogs.com/gangtiexia   直接插入排序(Straight Insertion Sort)的基本思想是将新记录插入到 ...

  8. 数据结构C语言版 表插入排序 静态表

    数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./*  数据结构C语言版 表插入排序  算法10.3 P267-P270  编译 ...

  9. 深入浅出数据结构C语言版(16)——插入排序

    从这一篇博文开始,我们将开始讨论排序算法.所谓排序算法,就是将给定数据根据关键字进行排序,最终实现数据依照关键字从小到大或从大到小的顺序存储.而这篇博文,就是要介绍一种简单的排序算法--插入排序(In ...

  10. C语言学习之插入排序

    此前的一些博文分别写了C语言中经典的排序方式,选择排序 冒泡排序 桶排序,此文就写 插入排序吧. 相对于冒泡排序,插入排序就比较方便快捷了.和冒泡 选择排序一样,插入排序也需要比较大小.可以这样理解插 ...

随机推荐

  1. STL_iterator迭代器(1)——迭代器的分类

    一.容器迭代器 尽管C++指针也是迭代器,但用的更多的是容器迭代器.容器迭代器用法和iterdemo.cpp一样,但和将迭代器申明为指针变量不同的是,你可以使用容器类方法来获取迭代器对象.两个典型的容 ...

  2. Hadoop操作hdfs的命令【转载】

    本文系转载,原文地址被黑了,故无法贴出原始链接. Hadoop操作HDFS命令如下所示: hadoop fs 查看Hadoop HDFS支持的所有命令 hadoop fs –ls 列出目录及文件信息 ...

  3. 《SDN核心技术剖析和实战指南》3.3读书笔记

    这一节主要是介绍几种开源的SDN控制器. NOX/POX.最初的NOX混合了C++和Python两种编程语言,现在演变为两个版本.NOX版本主要面向Linux平台,利用C++开发,目标是提供快速的控制 ...

  4. Aggregating tests in suites

    我们可以将来自不同类的test组成一个test suite.在JUnit 3.8.x我们使用 static Test suite()方法,但是在JUnit4我们使用在类前面加上注释 @RunWith( ...

  5. OpenStack入门之初步认识

    一.OpenStack 入门 之 基础知识 二.OpenStack 入门 之 基本组件 三.OpenStack 入门 之 各组件解析(基础) 四.OpenStack 入门 之 各组件解析(进阶) 五. ...

  6. A - 敌兵布阵 - hdu 1166

    Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些 ...

  7. Reachability下载地址

    https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html

  8. 获取CPU使用情况信息(转)

    获取了内存使用情况,也可以使用PHP的 getrusage()获取CPU使用情况,该方法在windows下不可用.    print_r(getrusage()); /* 输出 Array ( [ru ...

  9. Citrix Presentation server can not contact the license server

    If you come across the above error,  you may also come across one or more of the errors below within ...

  10. HDU -2524 矩形A + B

    找规律题,这种题目比较巧妙,要仔细观察找出规律 1. 假设只有一行,一共有n列,那么由一个小矩形构成的矩形个数为n, 由两个小矩形构成的矩形个数为 n - 1个 .... 由 n 个小矩形构成的矩形个 ...