问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请写一个折半插入排序算法(最好用C语言写出来,只要求写一个函数)。

发布网友 发布时间:2024-10-07 00:27

我来回答

1个回答

热心网友 时间:2024-11-24 09:18

折半插入排序算法:

//创建链表
Status EnSqList(SqList *L,ElemType e,int n)  
{  
    if (L->length >= n)  
        return ERROR;  
    L->data[L->length + 1] = e;  
    L->length++;  
    return OK;  


//折半插入排序算法
void BInsertSort(SqList *L)  
{  
    int i, j, mid, high, low;  
    for (i = 2; i <= L->length; i++)  
    {  
        low = 1;  
        high = i - 1;  
        L->data[0] = L->data[i];  
        while (low <= high)  
        {  
            mid = (low + high) / 2;  
            if (L->data[0] < L->data[mid])  
                high = mid - 1;  
            else  
                low = mid + 1;  
        }  
        for (j = i - 1; j >= high + 1; j--)  
            L->data[j + 1] = L->data[j];  
        L->data[high + 1] = L->data[0];  
    }  
}

int main(void)  
{  
    SqList L;  
    int n, i;  
    ElemType e;  
    L.length = 0;  
    printf("输入元素个数:");  
    scanf("%d", &n);  
    L.data = (int *)malloc(sizeof(int)*n);  
    printf("输入各个元素的值:");  
    for (i = 0; i < n; i++)  
    {  
        scanf("%d", &e);  
        EnSqList(&L, e, n);  
    }  
    BInsertSort(&L);  
    for (i = 1; i <= n; i++)  
        printf("%d ", L.data[i]);  
    printf("\n");  
    return 0;  
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 实现一键完美修图!ps最受欢迎的修图插件DR4.5免费领取 深圳华夏IT职业学校是干嘛的,大专可以去吗 关于x的不等式组2x-1大于3(x-2),x-a小于1的解集是x小于5,求a得取值... “白天睡不醒,晚上睡不着”,该怎么办? 漫威超级战争怎么看自己的皮肤 南通中集在南通哪里 ...人员说附4年保险利率高就办了,现发现存折打的是十年怎么办_百度知 ... ...重生的都可以,要武将类的小说,要争霸的!最好是完本的,长一点的... 求桃屋的漫画,不要三国的最好是魔法少女和那个什么亚的 身材矮小,很多衣服穿着不合适,要穿最小码的,什么品牌适合17岁有XS码... ...2x-5&gt;3(x-1) x&lt;m 的解集是x&lt; -2,则m的取值范围是什么 随着直播教学兴起,老师被学校强迫直播带货,对于学校这种行为你有何看法... 深圳华夏软件教育学校注重的哪方面的培训?有从那里出来的友友么?学校... 刘姓的姑娘,属龙,腊月生日,凌晨四点出生,避开xin,huan,yu,这三个音, ...可是工作人员拉拢我,我稀里糊涂的就买了他们工行的新华保险... 宜宾马湖古城怎么样 马湖周边有什么风景区 马湖吃住攻略,马湖风景区最好的酒店是哪个 属鼠的爱情宣言分别是什么? 马湖溶洞有门票吗,马湖公园景区门票 到南通中集工作,是公司直招,还是通过中介呢 关于x的不等式组{2x-1&gt;3(x-2) x-a&lt;1 的解集是x&lt;5,求a的取值范围。 要有... 一个游戏:好像在一个庄园里,养动物,可以割草,还可以用羊毛换兔子,也可... ...组3x-1&gt;4(x-1),x&lt;m的解集为x&lt;3,那么m的取值范围是多少? 吃面食容易发胖?还是吃大米容易发胖? 存疑应该怎么做到,就是对一切都怀疑么?请帮我解答,谢谢!!! 洛阳九龙鼎是仿照司母戊鼎的,但为什么鼎上面的图饰不太一样 现在的魅族MX3从配置上算是过时了么,这样的配置是不是过一两年就落伍... 想知道: 洛阳市 西关九龙鼎 不等式组 2x-3&gt;4x-5 x&lt;m-1 的解集如图所示,则m的值范围是__ 魅族mx4快出来了,魅族MX3还值得买吗 华为下载的文件去哪了? 和喜欢的女生划清界限后,每晚发梦都梦到她,在梦中我俩很好,在现实中很... 洛阳九龙鼎的来历? 现在买魅族mx3值不值啊? 洛阳九龙顶是长方形还是正方形? 现在入手mx3咋么样? 65432每两个数字中间需要填写加减乘除得出来的数是11 现在买魅族mx3需要等吗 求米色牛角扣大衣搭配法