2016 408算法题目

Posted yangmenda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016 408算法题目相关的知识,希望对你有一定的参考价值。

基本思想:仿照快速排序思想,基于枢轴将n个整数划分处理。

若i=n/2,则分组完成,算法结束

若i<n/2,则枢轴前元素均属于a1,继续对i以后的元素进行划分

若i>n/2,则枢轴之后的元素均属于a2,继续对i以前的元素进行划分

int set_partition(int a[],int n)
{
    int pivotkey,low=0,low0=0,high=n-1,high0=n-1,flag=1,k=n/2,i;
    int s1=0,s2=0;
    while(flag)//选择枢轴
    {
        pivotkey=a[0];
        while(low<high)
        {
            while(low<high&&a[high]>=pivotkey)--high;
            if(low!=high)a[low]=a[high];
            while(low<high&&a[low]<=pivotkey)++low;
            if(low!=high)a[high]=a[low];

        }
        a[low]=pivotkey;
        if(low==k-1)//如果枢轴是n/2小元素,则划分成功
            flag=0;
        else{
            if(low<k-1)
            {
                low0=++low;
                high=high0;
            }
            else{
                high0=--high;
                low=low0;
            }
        }
    }
    for(i=0;i<k;i++)s1+=a[i];
    for(i=0;i<k;i++)s2+=a[i];
    return s2-s1;
}

  

以上是关于2016 408算法题目的主要内容,如果未能解决你的问题,请参考以下文章

专栏必读王道考研408数据结构+计算机算法设计与分析万字笔记题目题型总结注意事项目录导航和思维导图

计算机考研408每日题目 0x13

片段(Java) | 机试题+算法思路+考点+代码解析 2023

(王道408考研数据结构)第六章图-第四节1:最小生成树之普利姆算法(思想代码演示答题规范)

(王道408考研数据结构)第六章图-第四节4:最短路径之迪杰斯特拉算法(思想代码演示答题规范)

(王道408考研数据结构)第六章图-第四节5:最短路径之弗洛伊德算法(思想代码演示答题规范)