,,C++实现折半插入排序(BinaryInsertSort)

,,C++实现折半插入排序(BinaryInsertSort)

本文主要详细介绍用C语言实现半插入排序。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

本文分享C实现半插入排序的具体代码,供大家参考。具体内容如下

一、思路:

与插入排序相比,比较次数减少,但插入时间仍然相同。

(1)根据二分搜索法方法,找出V[i]在V[0],V[1]…V[i-1]中插入的位置;

(2)前后移动插入位置的元素。

二、实现程序:

//二进制插入:与插入排序相比,比较次数减少,但插入时间不变。

//时间复杂度仍然是:O(n*n)

#包括iostream

使用命名空间std

const int maxSize=20

模板类T

void BinInsertSort(T arr[],const int left,const int right) {

int i,j,low,high,mid

测试温度;

for(i=左1;i=对;i ) {

temp=arr[I];//临时arr[i]

低=左;

高=I-1;//低,高为二分搜索法的上下界。

While(low=high) {//用半搜索的方法找到arr[i]的插入位置。

mid=(低高)/2;

if(临时数组[中间])

高=中-1;

其他

低=中1;

} //当

for(j=I-1;j=低;j -)

arr[j 1]=arr[j];//按顺序向后移动

arr[low]=temp;//回填

} //for

} //BinInsertSort

int main(int argc,const char * argv[]) {

int i,n,arr[maxSize];

Cout '请输入要排序的数字个数:';

CIN n;

Cout '请输入要排序的数字:';

for(I=0;I n;我)

CIN arr[I];

排序前的“cout”:“endl;

for(I=0;I n;我)

cout arr[I]' ';

cout endl

BinInsertSort(arr,0,n-1);

排序后的cout:' endl;

for(I=0;I n;我)

cout arr[I]' ';

cout endl

返回0;

}

测试结果:

这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • vs2015打包安装程序,vs2015程序打包,VS2022实现VC++打包生成安装文件图文详细历程
  • vc++6.0的快捷键,vc 快捷键
  • vc++6.0的快捷键,vc 快捷键,VC6.0常用快捷键大全
  • 绘制圆角矩形的方法,c++ 画矩形,C#画圆角矩形的方法
  • 懒汉式和饿汉式代码,单列模式懒汉和饿汉,C++单例模式的懒汉模式和饿汉模式详解
  • 好用的C++编译器,c++编译软件哪个好
  • semaphore c#,c++ semaphore
  • semaphore c#,c++ semaphore,C++中Semaphore内核对象用法实例
  • dev-c++使用教程,dev c++安装教程
  • dev-c++使用教程,dev c++安装教程,Dev C++ 安装及使用方法(图文教程)
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针
  • C里面指针常量和常量指针的区别,c++指针常量和常量指针,简单总结C++中指针常量与常量指针的区别
  • com组件初始化失败,c#开发com组件,C++中COM组件初始化方法实例分析
  • c++静态成员变量使用,c++静态成员函数和静态成员变量
  • c++静态成员变量使用,c++静态成员函数和静态成员变量,详解c++ 静态成员变量
  • 留言与评论(共有 条评论)
       
    验证码: