BottomupSort算法 c++代码实现

简介:
复制代码
#include <iostream>
using namespace std;

#define N 100

int A[N];     
static int n;   


void Initial()
{
    cout << "请输入元素的个数:";
    cin >> n;
    cout << "请输入" << n << "个元素:";
    for(int i = 1; i <=n; i ++)
    {
        cin >> A[i];
    }
}

void Print()
{
    cout << "经过Bottomupsort后:";
    for(int i = 1; i <=n; i ++)
    {
        cout << A[i] << " ";
    }
    cout << endl;
}


void Merge(int a[], int p, int q, int r)
{
    int b[N];
    int s = p, t = q+1, k = p;
    
    while(s <= q && t <= r)
    {
        if(a[s] <= a[t])
        {
            b[k++] = a[s++];
        }
        else
        {
            b[k++] = a[t++];
        }
    }

    if(s==q+1)
    {
        for(int i = t; i <= r; i ++)
        {
            b[k++] = a[i];
        }
    }
    else
    {
        for(int j = s; j <= q; j ++)
        {
            b[k++] = a[j];
        }
    }

    //把b[]中排好的元素copy到a[]中
    for(int i = p; i <= r; i++)
    {
        a[i] = b[i];
    }
}


void Bottomupsort(int a[],int n)
{

   int t = 1;
   int s,i;
   while (t<n)
   {
        s = t;t =2*s;i=0;
        while(i+t<=n)
        {
            Merge(a,i+1,i+s,i+t);
            i = i+t;
        }
        if(i+s<n)
        {
            Merge(a,i+1,i+s,n);
        }
   }
}


int main()
{
    Initial();

    if(n > 1)
    {
        Bottomupsort(A,n);
        Print();
    }
    else if(n == 1)
    {
        Print();
    }
    system("pause");
    return 0;
}
复制代码

 

目录
相关文章
|
1月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
140 26
|
1月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
28天前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
349 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
1月前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
152 14
|
27天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
103 2
|
27天前
|
canal 算法 vr&ar
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
|
1月前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
127 1
|
27天前
|
机器学习/深度学习 存储 算法
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
【微电网调度】考虑需求响应的基于改进多目标灰狼算法的微电网优化调度研究(Matlab代码实现)
|
27天前
|
机器学习/深度学习 分布式计算 算法
【风场景生成与削减】【m-ISODATA、kmean、HAC】无监督聚类算法,用于捕获电力系统中风场景生成与削减研究(Matlab代码实现)
【风场景生成与削减】【m-ISODATA、kmean、HAC】无监督聚类算法,用于捕获电力系统中风场景生成与削减研究(Matlab代码实现)
115 0
|
27天前
|
存储 边缘计算 算法
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)
【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)