算法之【折半插入法】

简介: 折半插入排序(binaryinsertion sort)是对插入排序算法的一种改进,采用二分法进行比较时不用一个一个比,而是”跳着选”的方式.Java算法原型:voidBinaryInsertSort(int R[],int n ){    i...

折半插入排序(binary insertion sort)是对插入排序算法的一种改进,采用二分法进行比较时不用一个一个比,而是”跳着选”的方式.

Java算法原型:

void BinaryInsertSort(int R[],int n )

{

    int i,j,mid,low,high,temp;

    for(i=2; i<=n; ++i)

    {

        R[0] = R[i];

        low = 1;

        high = i-1;

        while(low <= high)

        {

            mid = (low + high) / 2;

            if(temp > R[mid])

            {

                low = mid + 1;

            }else{

                high = mid - 1;

            }

        }

        for(j=i-1; j>=high+1; --j)

        {

            R[j+1] = R[j];

        }

        R[high+1] = R[0];

    }

}

目录
相关文章
|
算法 Java
折半查找算法[二分查找法]算法的实现和解决整数溢出问题~
折半查找算法[二分查找法]算法的实现和解决整数溢出问题~
|
存储 算法
【查找算法】折半查找法
【查找算法】折半查找法
|
存储 算法 数据库
经典算法学习之-----顺序查找,折半查找,索引查找(二)
经典算法学习之-----顺序查找,折半查找,索引查找(二)
250 0
|
2月前
|
算法 Java 索引
数据结构与算法学习十五:常用查找算法介绍,线性排序、二分查找(折半查找)算法、差值查找算法、斐波那契(黄金分割法)查找算法
四种常用的查找算法:顺序查找、二分查找(折半查找)、插值查找和斐波那契查找,并提供了Java语言的实现代码和测试结果。
31 0
|
算法 C语言
C语言:使用 普通方法 和 二分查找算法(折半查找算法) 在一个有序数组中查找具体的某个数字n-2
第一步: (1). 设置初始数组:int arr[]。 (2). 生成相关变量: int n = 0; -- 存放从键盘输入的要查找的值; int i = 0; -- 循环变量;
107 0
|
算法 Java 索引
经典算法学习之-----顺序查找,折半查找,索引查找(三)
经典算法学习之-----顺序查找,折半查找,索引查找(三)
49 0
|
7月前
|
算法
【408数据结构与算法】—折半插入排序(十六)
【408数据结构与算法】—折半插入排序(十六)
|
算法 C语言
C语言-折半查找(二分查找)算法详解
C语言-折半查找(二分查找)算法详解
189 0