C语言

C语言,第1张

C语言

(只是一个数组题目罢了)

直接插入排序,是指将无序序列中的各元素依次插入到已经有序的数组中。

假设数组中前i-1元素已经有序,现在要将线性表中第i个元素插入到前面的有序子表中,插入过程如下:

以长度为n=8的序列(13,6,1,31,9,27,5,11)的插入排序过程做示范: 第1趟:将数组第2个元素6向前插入后,则数组中元素为(6,13,1,31,9,27,5,11); 第2趟:将数组第3个元素1向前插入后,则数组中元素为(1,6,13,31,9,27,5,11); 第3趟:将数组第4个元素31向前插入后,则数组中元素为(1,6,13,31,9,27,5,11); …… 第7趟:将数组第8个元素11向前插入后,则数组中元素为(1,5,6,9,11,13,27,31); 总之,共执行7趟 *** 作,可将有n=8个元素的数组排成有序序列。

插入排序从第二个数开始,拿出第二个数向前进行插入排序,一直到最后一个数向前做插入排序,要求输出每趟插入排序的结果。

测试输入:

10

47 47 21 69 2 8 76 50 9 47

预期输出:

47 47 21 69 2 8 76 50 9 47

21 47 47 69 2 8 76 50 9 47

21 47 47 69 2 8 76 50 9 47

2 21 47 47 69 8 76 50 9 47

2 8 21 47 47 69 76 50 9 47

2 8 21 47 47 69 76 50 9 47

2 8 21 47 47 50 69 76 9 47

2 8 9 21 47 47 50 69 76 47

2 8 9 21 47 47 47 50 69 76

提示: 如果有10个整数,要求输出每趟插入排序共9趟的结果。

这里我调用了自定义函数来实现程序,真正编写时可以不用函数。具体怎么做,就请读者自己思考啦。

编写程序:

#include
#define N 100
int ONE (int a[],int n)
{
	int i,m;
	for (m=2;m=1;i--)
		{
			if (a[0]

运行结果:


 运行成功!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5520686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存