排序算法:二分排序(插入排序+二分查找)

插入排序就是一直向后读,第一个数,加入前面已经有序的一串数里。

而插入排序是笨笨的一个个向前找的,可以优化一下,用二分查找找到合适的位置。

插入排序代码

void Insertsort2(int a[], int n)  
{  
    int i, j;  
    for (i = 1; i < n; i++)  
        if (a[i] < a[i – 1])  
        {  
            int temp = a[i];  
            for (j = i – 1; j >= 0 && a[j] > temp; j–)  
                a[j + 1] = a[j];  
            a[j + 1] = temp;  
        }  

}  

所以只需要理解一下二分查找就可以了

比如一个串数,已经有序

分成对等(尽量)两块

注意3个数 第一块末端 第二块前端 你手上的数

进行一个大小的比较 考虑在哪块区间就可以了

如果最后只有3个数了,会拆分成2个数+1个数

其实也是一样。。。

如果最后只有2个数了,会拆分成1个数+1个数

其实也是一样。。。

    原文作者:查找算法
    原文地址: https://blog.csdn.net/qq_36523667/article/details/79433559
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞