文本浏览器

直接插入排序-二分查找法

发布者 : ONEPIECE | 发布时间 : 2019-01-05 11:41:29
文章号 : 6 | 阅读量 : 38+1 | AAW值(?) : 0.61 (仅供参考)

算法原理

从第一个元素开始,该元素可以认为已经被排序
取出下一个元素,在已经排序的元素序列中从后向前扫描
如果该元素(已排序)大于新元素,将该元素移到下一位置
重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
将新元素插入到该位置后
重复步骤~

动图: https://itimetraveler.github.io/gallery/sort-algorithms/Insertion-sort-example-300px.gif

这张动图可以很完整的理解二分查找法

实现语句

//二分查找法
for(int i = 1i < nums.lengthi++) {
    
int temp = nums[i]//当前操作符
    
System.out.println(temp);
    for 
(int j = ij >= 0j--) {
        
if (j > && nums[j-1] > temp) {
            nums[j] = nums[j-
1];
        
else {
            nums[j] = temp
;
            break;
        
}
    }
}

P.S.:建议在纸上模拟一次二分查找法的分析过程

附看不懂的自绘图







评论加载中...

+ 参与讨论