zoukankan      html  css  js  c++  java
  • 插入排序

    二分插入是直接插入排序的一种优化,主要是查找方式不同。

    稳定性:稳定的 

    时间复杂度:O(n^2)

    public class BinaryInsertSort {
    	public static void main(String[] args) {
    		int temp;
    		int left = 0, right, mid;
    		int[] array = { -2, 61, 24, 43 ,11,342,121,10,123,9};
    		for (int i = 1; i < array.length; i++) {
    			right = i - 1;
    			temp = array[i];
    			while (left <= right) {
    				mid = (left + right) >> 1;
    				if (array[mid] < temp) {
    					
    					left = mid + 1;
    				} else {
    					right = mid - 1;
    				}
    			}
    		
    			// 元素后移
    			for (int j = i - 1; j >= left; j--) {
    				array[j + 1] = array[j];
    			}
    			if (left != i) {
    				array[left] = temp;
    			}
    			left = 0;
    		}
    		for (int i : array) {
    			System.out.print(" "+i);
    		}
    	}
    }
    

      

  • 相关阅读:
    numpy
    shell进阶2
    python笔记3
    shell进阶1
    记录:Paxos原理、历程及实战
    收藏
    linux fs io
    linux mount 操作
    docker好文收藏
    rbd snap(1)
  • 原文地址:https://www.cnblogs.com/javabigdata/p/7281111.html
Copyright © 2011-2022 走看看