经典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
相关文章推荐
- ext2文件系统如何计算最大磁盘容量和最大单一文件容量
- Fix chrome 下flash crash的问题
- linux常用命令详解
- spring mvc4使用及json 日期转换解决方案
- C++中的内存管理(二)
- 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut .
- C#XML文件操作类(二)
- c++位运算和逻辑运算
- PreferenceActivity的使用
- 【EF 译文系列】模型和数据库连接
- new java接口
- TextView 单行显示长文本
- C++反汇编->模板分析
- i3wm配置笔记
- 最小堆操作(元素的添加和删除)
- 基本的哈夫曼编码算法的实现
- Java知识总结——StringBuilder、StringBuffer、String类之间的区别
- boost准模板库date_period()(时间段使用 续1)时间段之间的关系运算
- poj1003——HangOver
- vm.overcommit_memory和vm.overcommit_ratio