Java递归程序未对数组排序 公共类bubbleSort{ 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 int[]arr={50,40,30,20,10}; 气泡端口1(arr,0,arr.length-1); 显示(arr); } 公共静态无效泡泡端口1(int[]arr,int i,int li){ 如果(i==0){ 返回; } 如果(i==li){ 气泡端口1(arr,0,li-1); 返回; } if(arr[i]>arr(i+1)){ int temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=温度; } 气泡端口1(arr,i+1,li); } 公共静态无效显示(int[]arr){ 对于(int i=0;i
方法的第一行Java递归程序未对数组排序 公共类bubbleSort{ 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 int[]arr={50,40,30,20,10}; 气泡端口1(arr,0,arr.length-1); 显示(arr); } 公共静态无效泡泡端口1(int[]arr,int i,int li){ 如果(i==0){ 返回; } 如果(i==li){ 气泡端口1(arr,0,li-1); 返回; } if(arr[i]>arr(i+1)){ int temp=arr[i]; arr[i]=arr[i+1]; arr[i+1]=温度; } 气泡端口1(arr,i+1,li); } 公共静态无效显示(int[]arr){ 对于(int i=0;i,java,recursion,bubble-sort,Java,Recursion,Bubble Sort,方法的第一行bubbleSort1(…)是return;当i==0时。您是main方法调用方法时使用:bubbleSort1(arr,0,arr.length-1);…i==0-因此您的方法没有对任何内容进行排序 它应该看起来更像: 导入java.util.array; 公共类泡泡糖{ 公共静态void main(字符串[]args){ //TODO自动生成的方法存根 int[]list={50,40,30,20,10}; bubbleSort1(list,list.length); Syste
bubbleSort1(…)
是return;
当i==0
时。您是main
方法调用方法时使用:bubbleSort1(arr,0,arr.length-1);
…i==0-因此您的方法没有对任何内容进行排序
它应该看起来更像:
导入java.util.array;
公共类泡泡糖{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
int[]list={50,40,30,20,10};
bubbleSort1(list,list.length);
System.out.println(Arrays.toString(list));
}
公共静态void bubbleSort1(int[]列表,int listLength){
如果(listLength==1){return;}
对于(int i=0;i列表[i+1]){
int temp=列表[i];
列表[i]=列表[i+1];
列表[i+1]=临时;
}
bubbleSort1(列表,listLength-1);
}
}
}
输出
[10,20,30,40,50]
为了清晰起见,我随意重命名了变量,并将显示方法删除为数组。toString(list)方法免费提供此功能:)方法的第一行
bubbleSort1(…)
是return;
当i==0
时。您是main
方法调用方法时使用:bubbleSort1(arr,0,arr.length-1);
…i==0-因此您的方法不排序任何内容
它应该看起来更像:
导入java.util.array;
公共类泡泡糖{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
int[]list={50,40,30,20,10};
bubbleSort1(list,list.length);
System.out.println(Arrays.toString(list));
}
公共静态void bubbleSort1(int[]列表,int listLength){
如果(listLength==1){return;}
对于(int i=0;i列表[i+1]){
int temp=列表[i];
列表[i]=列表[i+1];
列表[i+1]=临时;
}
bubbleSort1(列表,listLength-1);
}
}
}
输出
[10,20,30,40,50]
为了清晰起见,我随意重命名了变量,并将显示方法删除为数组。toString(list)方法免费提供此功能:)您正在使用值
0
为I
调用该方法,该方法的第一行是if(I==0){return;}
。因此,您的方法完全不执行任何操作真的令人惊讶吗?您正在使用i
的值0
调用该方法,该方法的第一行是if(i==0){return;}
。那么,您的方法完全不起作用,这真的令人惊讶吗?
public class bubbleSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {50,40,30,20,10};
bubbleSort1(arr,0,arr.length-1);
display(arr);
}
public static void bubbleSort1(int[] arr,int i, int li) {
if (i==0) {
return;
}
if (i==li) {
bubbleSort1(arr,0,li-1);
return;
}
if (arr[i]>arr(i+1)) {
int temp = arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
bubbleSort1(arr,i+1,li);
}
public static void display(int[] arr) {
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
}
}