美文网首页
排序算法(二)二分插入排序

排序算法(二)二分插入排序

作者: 又语 | 来源:发表于2021-11-04 09:01 被阅读0次

二分插入排序是在插入排序的基础上引入 二分查找 的思想。

复杂度分析

  • 最坏情况:O(n²)
  • 最好情况:O(nlog2n)
  • 平均:O(log2n)

Java 代码实现

import java.util.Arrays;

public class BinarySort {
    
    public static void sort(int[] data) {
        int temp;
        int low;
        int high;
        int middle;
        for (int i = 1; i < data.length; i++) {
            temp = data[i];
            low = 0;
            high = i - 1;
            while (low <= high) {
                middle = (low + high) / 2;
                if (temp < data[middle]) {
                    high = middle - 1;
                } else {
                    low = middle + 1;
                }
            }
            for (int j = i - 1; j >= low; j--) {
                data[j + 1] = data[j];
            }
            if (i != low) {
                data[low] = temp;
            }
            System.out.println(Arrays.toString(data));
        }
    }

    public static void main(String[] args) {
        int[] a = {34, 24, 93, 1, 32, 98, 18, 39};
        sort(a);
    }
}

运行结果

[24, 34, 93, 1, 32, 98, 18, 39]
[24, 34, 93, 1, 32, 98, 18, 39]
[1, 24, 34, 93, 32, 98, 18, 39]
[1, 24, 32, 34, 93, 98, 18, 39]
[1, 24, 32, 34, 93, 98, 18, 39]
[1, 18, 24, 32, 34, 93, 98, 39]
[1, 18, 24, 32, 34, 39, 93, 98]

相关文章

  • Chapter 2 Foundation of Algorith

    Chapter 2 插入排序 线性查找 选择算法 归并排序算法 二分查找算法 冒泡排序 插入排序 循环不...

  • 基本算法

    冒泡算法 选择排序 插入排序 顺序查找 二分查找

  • 基础排序算法

    快速排序 二分查找 冒泡排序 归并算法 选择排序 插入排序 Shell排序

  • 二分插入排序

    1.算法思想 二分插入排序也是插入排序算法的一种,其基本思想是:引入二分查找的思想,在直接插入排序的基础上减少比较...

  • 基础算法(查找 , 排序)

    算法分析 渐进符号 - (O , Ω , θ) 查找算法 二分查找 - O(logn) 排序算法 直接插入排序 -...

  • 九种排序算法(重要!!)

    分类:(九种排序算法) 1、插入排序:直接插入排序、二分插入排序、希尔排序; 2、选择排序:简单选择排序、堆排序 ...

  • 七种常见的数组排序算法整理(C语言版本)

    ~~~C语言版本~~~ 冒泡排序 选择排序 直接插入排序 二分插入排序 希尔排序 快速排序 堆排序 排序算法是否稳...

  • 干货分享:白话12种排序算法

    常见的排序算法: 快速排序、堆排序、归并排序、选择排序 插入排序、二分插入排序 冒泡排序、鸡尾酒排序 桶排序、计数...

  • 数据结构与算法(七),排序

    这节总结一下常见的排序算法。 目录: 1、插入排序 1.1、直接插入排序 1.2、二分插入排序 2、选择排序 3、...

  • 部分简单排序

    调用测试 插入排序 二分插入排序 希尔排序 冒泡排序

网友评论

      本文标题:排序算法(二)二分插入排序

      本文链接:https://www.haomeiwen.com/subject/vhsczltx.html