冒泡排序的另类写法

这篇博客分享了一种使用递归实现冒泡排序的方法,适用于升序排序。博主原本是为了解决寻找二维数组中最长数组的问题,过程中产生了这个排序算法。文章提供了具体的Java代码实现,并提到该方法也可用于数组长度的调整。
摘要由CSDN通过智能技术生成

先上代码:

/**

* @param nums
* @param index1
* @param index2
*/
public static void sort(int[]sorts,int index1,int index2) {
if(sorts[index1]>sorts[index2]) {
sorts[index2]=sorts[index1];
index1++;
index2++;
if(sorts.length>index2) 
sort(sorts,index1,index2);
}
}

这里使用递归进行循环比较,进行升序排序,当然也可以进行逆序排序,这里就不实现了。其实这只是一个即兴代码的副产品,我一开始是打算找出一个不知道每个数组长度是多少的二维数组中最长的数组,然后进行赋0/null使之成为矩形二位数组然后进行数组置换的,关键代码如下:

/**
* 找出二位数组中最长的数组
* @param nums
* @param index1
* @param index2
*/
public static void show(int[][]nums,int index1,int index2) {
if(nums[index1].length>nums[index2].length) {
nums[index2]=nums[index1];
index1++;
index2++;
if(nums.length>index2) {
show(nums,index1,index2);
}
}
}
/**
* 将数组长度较短的数组nums2强制提升至nums1的长度并返回
* 实现步骤:不足位补0/null
*/
public static  int[] changeArray(int[]nums1,int[]nums2) {
int[]nums=new int[nums1.length];
for(int i=0;i<nums.length;i++) {
if(i<=nums2.length) {
nums[i]=nums2[i];
}else {
nums[i]=0;
}
}
return nums;

}

至于省不省代码什么的我就不知道了,反正觉得挺有意思,有兴趣的可以敲一下。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值