#include<stdio.h>

 //直接插入法
void D_insert(int s[],int n);
int main()
{
int i;
int a[];
printf("please enter five numbers:\n");
for(i=;i<;i++)
{
scanf("%d",&a[i]);
}
D_insert(a,);
printf("after number:\n");
for(i=;i<;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
void D_insert(int s[],int n)
{
int j,i; for(i=;i<=n;i++)
{
s[]=s[i];
j=i-;
while(s[j]>=s[] && j>)
{
s[j+]=s[j];
j--;
}
s[j+]=s[]; }
}

这是相应的代码

在方法函数的时候,又卡壳了。这是在n次编写之后的卡壳。

下面就方法函数具体解释一下。

首先空出一个来当哨兵。这里设定的为a[0];总共有n个数,则循环n-1次。所以i从2到n开始循环。把a[0]中放入要插入的数字,然后依次和之前的数字比较,如果比其小,则元素后移。

按照这个原理,则有另一种的表示方法了

 #include<stdio.h>

 //直接插入法
void D_insert(int s[],int n);
int main()
{
int i;
int a[];
printf("please enter five numbers:\n");
for(i=;i<;i++)
{
scanf("%d",&a[i]);
}
D_insert(a,);
printf("after number:\n");
for(i=;i<;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
void D_insert(int s[],int n)
{
int j,i; for(i=;i<=n;i++)
{
s[]=s[i]; while(s[i-]>=s[] && i>)
{
s[i]=s[i-];
i--;
}
s[i]=s[]; }
}

用c语言编写直接插入法的更多相关文章

  1. 基于php基础语言编写的小程序之计算器

    基于php基础语言编写的小程序之计算器 需求:在输入框中输入数字进行加.减.乘.除运算(html+php) 思路: 1首先要创建输入数字和运算符的输入框,数字用input的text属性,运算符用sel ...

  2. 如何用C语言编写病毒‘

    怎样用C语言编写病毒在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现.[Abstract] This paper introduce the charateristic ...

  3. 选择使用c语言编写的phalcon框架

    使用这个框架,我总结了如下几点考虑 1.这个框架速度快.纯c语言编写的框架,速度都比php框架快,省去了中间环节.当然,使用它不仅仅是性能考虑.因为如果为了解决php性能问题,完全可以有很多种方式,不 ...

  4. [改善Java代码]易变业务使用脚本语言编写

    建议16: 易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP.Ruby.Groovy.JavaScript等,这些“入侵者”都有一个共同特征:全是同一类语言—脚本语言,它们 ...

  5. 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...

  6. 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取

    本文跟着上一篇文章继续写,上一篇文章的链接 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 一.随便说说 获取文件系统使用情况的思路和上一篇获取主要系统是 ...

  7. C语言编写的bmp读写程序

    C语言编写的bmp读写程序 建议先把bmp的数据存储格式了解下 <span style="font-size:16px;">#include "Windows ...

  8. 使用C语言编写windows服务一般框架

    原文:使用C语言编写windows服务一般框架 编写windows服务和编写windows应用程序一样,有一些回调函数必须填写且向windows 服务管理器(service manager)进行注册, ...

  9. C语言编写Windows服务程序

    原文:C语言编写Windows服务程序 #include <Windows.h> #include <stdio.h> #define SLEEP_TIME 5000 // 间 ...

随机推荐

  1. Android ListView 子控件点击事件

    android:descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只 ...

  2. linux下使用sftp

    何为sftp sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法. 连接 linux下直接在终端中输入: sftp us ...

  3. 关于Left join

    Sql关联表时条件放在On或者where上结果是不一样的. 1.放在on上 如下 select S.StoreID,* from BizProductItem as P left join BizSt ...

  4. TCP/IP网络编程中socket的行为

    一. read/write的语义:为什么会阻塞? 先从write说起: #include <unistd.h>ssize_t write(int fd, const void *buf, ...

  5. 对hashmap与hashcode()、equals()的理解

    1.equals方法没被重写的时候   比较的只是对象的地址  重写之后 比较的才是对象里的内容 2.重写equals的时候 务必需要重写hashcode 不然在用到容器的时候 会出现问题 因为容器会 ...

  6. Netty之Java堆外内存扫盲贴

    Java的堆外内存本来是高贵而神秘的东西,只在一些缓存方案的收费企业版里出现.但自从用了Netty,就变成了天天打交道的事情,毕竟堆外内存能减少IO时的内存复制,不需要堆内存Buffer拷贝一份到直接 ...

  7. Bootstrap modal被sliverlight掩盖。

    Bootstrap中的modal被silverlight遮挡了,解决方案: <object id='xx'....> ... <param name="windowless ...

  8. Mysql 语句中对关键字进行转义的方式

    在SQLserver中, 对列名表名库名Owner进行转义使用的是[ ] 这个我在其他文章中讲过 ,而且这是一个很好的习惯! 同理  在MySql中 也建议对表名等进行转移  使用的方式是 ``  就 ...

  9. SQL中 Left Join 与 Right Join 与 Inner Join 与 Full Join的区别

    首先看看Left Join 与Right Join 与 Inner Join 与 Full Join对表进行操作后得到的结果. 在数据库中新建两张表,并插入要测试的数据. 新建表: GO /***** ...

  10. php中rsa加密及解密和签名及验签

    加密的内容长度限制为密钥长度少位,如位的密钥最多加密的内容为个长度. 公钥加密 $public_content=file_get_contents(公钥路径); $public_key=openssl ...