数据结构--排序系列(插入排序,希尔排序,堆排序)Java代码实现

本文介绍了三种经典排序算法的具体实现过程:插入排序、希尔排序和堆排序。通过实例演示了每种算法的工作原理,并提供了完整的Java代码实现。

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

定理1:N个互异数的数组的平均逆序数是N(N-1)/4
定理二:通过交换相邻元素进行排序的任何算法平均都需要O(N^2)
package paixu;
public class Insert {
    public static void main(String[] args) {
       int  a[]= {9,6,8,4};
        insertionSort(a);
        for(int i=0;i<a.length;i++){
            System.out.println(a[i]);
        }
}
    public static  void  insertionSort(int [] a){
        int j;
        for(int p=1;p<a.length;p++){
            int tmp=a[p];
            j=p-1;
            while(j>=0&&tmp<a[j]){
                a[j+1]=a[j];
                j--;
            }
          a[j+1]=tmp;
        }
    }
}


希尔排序:
package paixu;
public class Shellsort {
    public static void main(String[] args) {
        int a[]={3,9,56,4,5,1};
        shellSort(a);
        for(int o:a)
        System.out.println(o);
    }
    public static void shellSort(int [] arr){
        int j;
        int len=arr.length;
        for(int val=len/2;val>0;val=val/2){
            for(int i=val;i<len;i++){
               int temp=arr[i];
                for(j=i;j>=val&&temp<arr[j-val];j-=val){
                    arr[j]=arr[j-val];
                }
                arr[j]=temp;
            }
        }
    }

}


堆排序:

package paixu;


public class heapsort {
    public static class ArrayUtils{
        public static void  printArray(int [] array){
            System.out.println("{");
            for(int i=0;i<array.length;i++){
                System.out.println(array[i]);
                if(i<array.length-1){
                    System.out.println(",");
                }
            }
            System.out.println("}");
        }
        public static void exchangeElements(int[] array,int index1,int index2){
            int temp=array[index1];
            array[index1]=array[index2];
            array[index2]=temp;
        }
    }




    public static void main(String[] args) {
       int [] array={25,23,32,1,14,21,2};
        heapSort(array);
         for(int arr:array){
             System.out.println(arr);
         }
    }
     public static void heapSort(int[] array){
        if(array==null||array.length<=1){
            return;
        }


         buildMaxHeap(array);
         for(int i=array.length-1;i>=1;i--){
            ArrayUtils.exchangeElements(array,0,i);
             maxHeap(array,i,0);
         }
     }


    private static void buildMaxHeap(int[] array){
        if(array==null||array.length<=1){
            return;
        }


        int half=array.length/2;
        for(int i=half;i>=0;i--){
            maxHeap(array,array.length,i);
        }
    }


    private static void maxHeap(int[] array,int heapSize,int index){
        int left=index*2+1;
        int right=index*2+2;


        int largest =index;
        if(left<heapSize&&array[left]>array[index]){
             largest=left;
        }


        if(right<heapSize&&array[right]>array[largest]){
            largest=right;
        }


        if(index!=largest){
            ArrayUtils.exchangeElements(array,index,largest);


            maxHeap(array,heapSize,largest);
        }
    }
}

内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值