#include <stdio.h>
int BInsertSort(int array[],int left,int right){ //接收主函数调用语句中的实参传到这里的形参里
int low,high,mid;
int temp;
for(int i=left+;i<=right;++i){
temp=array[i]; //把第2个数(也就是下标1位置的数)存到temp临时变量里,即从第2个数开始往后的序列依次按照折半插入插入到第一个数的数列里(默认第一个数作为一个有序序列)
low=left; //将待插入的关键字要想插入到已经有序的序列中,需要找到插入位置,从此句往下为在有序序列中查找插入位置
high=i-; //在有序序列中设置左右下标变量low和high
while(low<=high){ //当low和high交换位置时结束查找
mid=(low+high)/;
if(array[i]<array[mid]) /*此while循环为折半查找算法*/
high=mid-;
else //如果待插入关键字大于或等于下标为mid处的关键字,都是在mid处后面进行插入
low=mid+;
}
for(int j=i-;j>=low;--j) //把从low号位置及其后的关键字全部后移一个位置,把待插入的关键字放在low号位置
array[j+]=array[j];
array[low]=temp;
}
return ;
}
int main(){
int a[]={,,,,,};
printf("排序前序列:");
for(int i=;i<;++i)
printf("%d\t",a[i]);
printf("\n");
BInsertSort(a,,); //调用BInsertSort函数,把待排序数组a,左下标0,右下标5传到形参
printf("排序后序列:");
for(int j=;j<;++j)
printf("%d\t",a[j]);
printf("\n");
return ;
}

最新文章

  1. OAF_开发系列24_实现OAF更新记录显示Record History(案例)
  2. Atitit 信用卡与会员卡(包括银行卡)的发展之路
  3. 使用PhpStrom等IDE编辑 远程linux服务器上的文件 实时更新
  4. C# List根据某一字段排序 将字段相同的排序到一起
  5. iar 数据类型 int folat
  6. iOS Block浅析
  7. Python基础学习笔记(十二)文件I/O
  8. Ubuntu 12.04 添加新用户并启用root登录
  9. 10327 - Flip Sort
  10. Floodlight 防火墙是如何起作用的
  11. Oracle 11g RAC OCR 与 db_unique_name 配置关系 说明
  12. php中函数 vsprintf() 和 var_export()
  13. javascript事件委托机制详解
  14. jQuery.proxy() 函数详解
  15. 从Android源码修改cpu信息
  16. day 7-6 多线程及开启方式
  17. project 2013 删除资源
  18. tkinter 写一个简易的ide
  19. JAVA关于泛型的笔记
  20. cnetos7最小化安装ifconfig命令找不到怎么办

热门文章

  1. VLAN(虚拟局域网)划分
  2. python把源代码打包成.exe文件
  3. BZOJ 1641 [Usaco2007 Nov]Cow Hurdles 奶牛跨栏:新版floyd【路径上最大边最小】
  4. python-多线程3-生产者消费者
  5. Spring MVC 中/和/*的区别
  6. 【Lintcode】033.N-Queens
  7. Python3解leetcode Valid Parentheses
  8. 【转】Pro Android学习笔记(五):了解Content Provider(上)
  9. Moco框架jar下载地址
  10. C# FileStream分块读取和保存文件