博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法杂谈(二) —— 冒泡排序的递归实现
阅读量:5462 次
发布时间:2019-06-15

本文共 796 字,大约阅读时间需要 2 分钟。

众所周知,循环和递归,在很多情况下是可以互相转换的。

那么,,作为典型的双重循环结构,也可以将其转化成递归形式。

 

但是,将递归转化为循环,对于程序的运行是有益的,因为它避免了不可预知的“方法压栈”的现象出现。

而将循环化为递归,多数情况下,不推荐这么做,即使递归的代码可能实现地非常漂亮。漂亮与高效往往是冲突的。

 

所以,以下的冒泡排序仅作参考,读者可以用它来拓宽思维。但是,永远不要这样写冒泡排序!

 

public final class BubbleSortRecursion implements Sort {    @Override    public void sort(int[] array) {        recursion(array, 0, array.length - 2);    }    private void recursion(int[] array, int left, int right) {        if (right > 0) {            if (array[left] > array[left + 1]) {                ArrayHelper.swap(array, left, left + 1);            }            if (left >= right) {                recursion(array, 0, right - 1);            } else {                recursion(array, left + 1, right);            }        }    }}

 

转载于:https://www.cnblogs.com/jing-an-feng-shao/p/9078826.html

你可能感兴趣的文章
数据平滑
查看>>
奇异值分解
查看>>
快速傅里叶变换模块(fft)
查看>>
随机数模块(random)
查看>>
杂项功能(排序/插值/图像/金融相关)
查看>>
pandas核心
查看>>
线性回归
查看>>
机器学习学习索引
查看>>
多项式回归
查看>>
Python-字符串
查看>>
MySQL8.0安装以及介绍(二进制)
查看>>
MySQL权限系统
查看>>
Python-集合
查看>>
转:标签中的href如何调用js
查看>>
CrawlSpiders简介
查看>>
面向对象编程
查看>>
django-rest-framework 视图的使用规则 总结分享
查看>>
drf 访问文档出现错误'AutoSchema' object has no attribute 'get_link'
查看>>
django-rest-framwork 错误信息整理
查看>>
第一讲 评估类模型之层次分析法
查看>>