冒泡排序代码实现
1.手写冒泡
//遍历数组中每一个元素
for(int i=0;i<arr.length;i++){
//每遍历完一个元素,就会确定出当前遍历这个数组长度中一个最值,下一次遍历就不需要考虑
for(int j=0;j<arr.length-1-i;j++){
//如果前一个数比后一个数大,我们就跟这两个元素做值交换
if(arr[i]>arr[i+1]){
int s=arr[i];
arr[i]=arr[i+1];
arr[i+1]=s;
}
}
}
//至此循环结束,我们得到一个正序排序的数组
2.递归冒泡
public static int[] fun(int[] arr,int length){
//得到一个乱序的数组以及要便利的范围
for(int i=0;i<length-1;i++){
//如果前一个数比后一个数大,我们就跟这两个元素做值交换
if(arr[i]>arr[i+1]){
int s=arr[i];
arr[i]=arr[i+1];
arr[i+1]=s;
}
}
//当length为1的时候说明遍历已经结束,直接返回结果
if(length==1){
return arr;
}
//进行下一次遍历,此时已经确定最后一个值为当前遍历这个数组长度中一个最值,下次循环不予考虑
return fun(arr,length-1);
}