猿问

冒泡法输出结果没有变化

package com.imooc;


public class test111 {

public static void main(String[] args) {

int[] arr = { 24, 69, 80, 57, 13 };

for (int i = 0; i < arr.length - 1; i++) {

for (int j = 0; j < arr.length - 1 - i; j++) {

swap(arr[j], arr[j + 1]);

}

}

}


}


public static void swap(int a, int b) {

if (a > b) {

int temp;

temp = a;

a = b;

b = temp;

}


}


}


qq_就此别过_0
浏览 2740回答 5
5回答

慕粉18356133882

int[]arr={24,9,0,1,5,35,92,6,9,3}; for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) { if(arr[j]>arr[j+1]){ int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } for (int i = 0; i < arr.length; i++) { System.out.println(arr+"\t");}

低调一点点plus

写了数据结构中的冒泡排序的算法,应该是C语言版的。int  []array=new int;int temp=0;for(int i=0;i<array.length-1;i++){for(int j=i+1;j<array.length;j++){if(array[j]<array[i]){temp=array[i];array[i]=array[j];array[j]=temp;}}}

1994我

public static void swap(int a, int b) {if (a > b) {int temp;temp = a;a = b;b = temp;}JAVA中虽然没有指针,但是还是有形参和实参的区别,当你调用这个方法的时候,相当于a=arr[j],b=arr[j+1],实际上你这段代码交换的是a和b,而你的arr[j]和arr[j+1]是没有交换的,你最好for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - 1 - i; j++) {swap(arr[j], arr[j + 1]);//改成if (arr[j] > arr[j+1]) {                                                 int temp;                                                  temp = arr[j];                                                    arr[j] = arr[j+1];                                                  arr[j+1] = temp;}}}

Caballarii

基础数据类型作为参数都是值传递,不会改变传入的参数本身的值你这里把swap方法写成public static void swap(int[] arr,int i,int j)这样的形式,传入数组本身和两个下标,这样交换数据才会影响main方法里的数组变量
随时随地看视频慕课网APP
我要回答