初学算法之---递归的插入排序

简介: 初学算法之---递归的插入排序

如下:

/**
 * @ClassName 排序
 * @Author ACER
 * @Description 找重复,找到一种划分方法,找到递归公式等价转换。都是去划分子问题
 *              找到出口。找变化的量,通常要作为参数。
 * @Date 2021/7/26 21:04
 * @Version 1.0
 **/
public class Main{
    public static void main(String[] args) {
        int []arr={1,2,5,4,5,8,1,2,0};
        fun(arr,arr.length-1);
        for (int i : arr) {
            System.out.print(i+" ");
        }
    }
    static void fun(int[]arr,int k){
        if (k==0){
            return;
        }
        //对前面k-1个数进行排序
        fun(arr,k-1);
        //将arr[k]插入到前面 从小到大顺序
        while(k>0&&arr[k]<arr[k-1]){
            //交换位置
            int temp=arr[k];
            arr[k]=arr[k-1];
            arr[k-1]=temp;
            k--;
        }
    }
}
相关文章
|
1月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
41 2
|
2月前
|
算法 搜索推荐 Shell
数据结构与算法学习十二:希尔排序、快速排序(递归、好理解)、归并排序(递归、难理解)
这篇文章介绍了希尔排序、快速排序和归并排序三种排序算法的基本概念、实现思路、代码实现及其测试结果。
27 1
|
2月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
23 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
6月前
|
存储 算法 程序员
数据结构与算法===递归
数据结构与算法===递归
|
2月前
|
算法 定位技术
数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题
本文详细介绍了递归的概念、重要规则、形式,并展示了递归在解决打印问题、阶乘问题、迷宫问题和八皇后问题等经典实例中的应用。
48 0
|
2月前
|
搜索推荐 算法
【排序算法(一)】——插入排序,选择排序 —> 深层解析
【排序算法(一)】——插入排序,选择排序 —> 深层解析
|
4月前
|
算法
【算法】递归、搜索与回溯——汉诺塔
【算法】递归、搜索与回溯——汉诺塔
|
5月前
|
算法 Python
python中算法递归错误(Recursion Errors)
【7月更文挑战第18天】
85 1
|
4月前
|
算法
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
【算法】递归总结:循环与递归的区别?递归与深搜的关系?
|
4月前
|
算法
【算法】递归、搜索与回溯——简介
【算法】递归、搜索与回溯——简介