您的位置:首页 > 其它

经典c程序(0026)---插入一数至有序序列

2014-04-19 18:49 423 查看
/**************************************************************************************
* Function     : test
* Create Date  : 2014/04/19
* Author       : NTSK13
* Email        : beijiwei@qq.com
* Copyright    : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。
                                              任何单位和个人不经本人允许不得用于商业用途
* Version      : V0.1  	  				
***************************************************************************************					  
经典c程序(0026)

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

**************************************************************************************/
#include<stdio.h>

#define MY_FUNC  1
#if MY_FUNC

#define M 10

void sort_insert(int *addr,int insert,int length);

//the first solution:
int main()
{
    int i=0;
    int array[10]={1,11,21,31,41,51,61,71,81,91};
    printf("before sort: \n");
    fflush(stdout);
	for(i=0;i<M;i++)// dangerous
	{
		printf("%d\t",array[i]);
		fflush(stdout);//修复Eclipse printf()不能显示的小bug
	}
	
	sort_insert(array,0,M);

	printf("\n\n After sort: \n");
	fflush(stdout);
	for(i=0;i<M+1;i++)// dangerous
	{
		printf("%d\t",array[i]);
		fflush(stdout);//修复Eclipse printf()不能显示的小bug
	}
	return 0;
}
void sort_insert(int *addr,int insert,int length)
{
	int i=0,k=0;;
	int *start=addr;
	for(i=0;i<length;i++)
	{
		if(insert>*(start+i) )
			k++;
		else
			break;
	}
	k--;
	for(i=length;i>k;i--)
	{
		*(start+i)=*(start+i-1);
	}
	*(start+k+1)=insert;

}

#else
/************************************************************************************/

//the second solution:
int main()
{
	int i=0,j=0,k=0;
	printf("\n");

	return 0;
}
#endif
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: