回溯插入排序法

回溯插入排序法将一个数组看成两部分,“前面”部分为有序的,“后面”部分为无序的。回溯插入法通过不断的扩展有序部

分来实现。有序部分每次从无序部分选择一个元素,将该元素附加在有序部分的后面。如果新增的元素大于有序的最后一个元

素,则扩展完成;相反,有序部分就变得有些无序了,交换这两个元素,并向前回溯一个元素,再次比较新增元素与最后的元

素,重复上面的动作,直到遇到一个比新增元素大的元素或者到达序列头。
例如,对于序列  5 8 3 6 4 1 2, 设定第一个元素是有序的。即
(5) 8 3 6 4 1 2
有序部分扩展一位
(5 8) 3 6 4 1 2
因为 5>8 显然,(5, 8) 有序
有序部分扩展一位
(5 8 3) 6 4 1 2
因 8 > 3, 交换 8和3 进行回溯 ,回溯步数为 1
((5 3) 8) 6 4 1 2
因5 > 3 交换 5 和 3,因为到达序列头,回溯完成
(3 5 8) 6 4 1 2
恢复原有未知,继续扩展一位
(3 5 8 6) 4 1 2
....
该过程循环下去,即可完成排序。
代码如下:
void insertsort(int *parr,int nmax)
{
        int i; 
        int back = 1;
        i = 0;  //第一个元素为有序部分。i 指向有序部分的最后一个元素--即最大元素
        while(i<nmax-1)
        {      
                if(parr[i]>parr[i+1]) //从无序部分取得一个元素(i+1),且大于有序部分的最大元素(i)
                {      
                        int n = parr[i];     //交换
                        parr[i] = parr[i+1];
                        parr[i+1] = n;
                        if(i>0) //未达到元素头
                        {      
                                i--;    //有序部分回溯一个元素
                                back ++; //记录回溯的步数
                                continue;//开始回溯
                        }      
                }      
        
                i += back; //回溯完成,将i设置为有序部分的最后一个元素。
                back = 1; //这里被用作有序部分扩展的规模
        }      
}
 

内容概要:本文详细探讨了基于樽海鞘算(SSA)优化的极限学习机(ELM)在回归预测任务中的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方,尽管其训练时间较长,但在实际应用中仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文中提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值