5 回答

TA貢獻4條經驗 獲得超0個贊
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");
}

TA貢獻2條經驗 獲得超0個贊
寫了數據結構中的冒泡排序的算法,應該是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;
}
}
}

TA貢獻3條經驗 獲得超1個贊
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;
}
}
}

TA貢獻1123條經驗 獲得超629個贊
基礎數據類型作為參數都是值傳遞,不會改變傳入的參數本身的值
你這里把swap方法寫成
public?static?void?swap(int[]?arr,int?i,int?j)
這樣的形式,傳入數組本身和兩個下標,這樣交換數據才會影響main方法里的數組變量
添加回答
舉報