希尔排序——ShellSort

本文介绍了一种希尔排序算法的实现过程,详细展示了如何通过逐步减小增量并对子序列进行直接插入排序的方法来最终实现整个序列的排序。通过具体实例说明了希尔排序的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package sort.com;
public class ShellSortFirst {
/**
* 程序入口方法
*/
public static void main(String[] args) {

    int []a={12,6,9,63,-22,0,96,1,7};
     // 计算出h的最大值    
    int h=1;    
    while(h<=a.length/3){

        h=h*3+1;
    }

    //在h的不断变化过程中将原序列分为多个子序列,并对这些子序列分别进行直接插入排序,当h=1时,对所有数据进行最后一次直接插入排序
    while(h>0){
        //利用for循环将序列分为若干个子序列
        for(int i = h; i < a.length; i++){
            //将待排序的数据进行存储
            int temp = a[i];

            /*开始判断子序列的前两个数是否按从小到大排列,若是,则执行for循环的第三个条件语句:i=++,然后继续执行if语句;
                                                       若不是,进入下面循环进行操作*/
            if(a[i] < a[i-h]){

                int j = i-h;

                for( ; j >= 0 && temp <a[j]; j = j - h ){

                    //子序列中较大的数后移h位
                    a[j+h] = a[j];  
                }

                //插入操作,也是真正的赋值操作
                a[j+h] = temp;

            }
        }

        //输出不同h值对应的不同序列
        System.out.println("当h=" + h + "时,序列为" );

        for(int x : a){

            System.out.print(x+",");

            } 
        System.out.println("\n");
        //通过该公式让h不断变化,该公式是固定的
        h = (h-1)/3;
    }

    //遍历完成排序的输出并输出
     System.out.println("最后结果:");
    for(int s : a){

        System.out.print(s+",");
    }
}

}

内容概要:本文介绍了奕斯伟科技集团基于RISC-V架构开发的EAM2011芯片及其应用研究。EAM2011是一款高性能实时控制芯片,支持160MHz主频和AI算法,符合汽车电子AEC-Q100 Grade 2和ASIL-B安全标准。文章详细描述了芯片的关键特性、配套软件开发套件(SDK)和集成开发环境(IDE),以及基于该芯片的ESWINEBP3901开发板的硬件资源和接口配置。文中提供了详细的代码示例,涵盖时钟配置、GPIO控制、ADC采样、CAN通信、PWM输出及RTOS任务创建等功能实现。此外,还介绍了硬件申领流程、技术资料获取渠道及开发建议,帮助开发者高效启动基于EAM2011芯片的开发工作。 适合人群:具备嵌入式系统开发经验的研发人员,特别是对RISC-V架构感兴趣的工程师和技术爱好者。 使用场景及目标:①了解EAM2011芯片的特性和应用场景,如智能汽车、智能家居和工业控制;②掌握基于EAM2011芯片的开发板和芯片的硬件资源和接口配置;③学习如何实现基本的外设驱动,如GPIO、ADC、CAN、PWM等;④通过RTOS任务创建示例,理解多任务处理和实时系统的实现。 其他说明:开发者可以根据实际需求扩展这些基础功能。建议优先掌握《EAM2011参考手册》中的关键外设寄存器配置方法,这对底层驱动开发至关重要。同时,注意硬件申领的时效性和替代方案,确保开发工作的顺利进行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值