1樓:匿名使用者
看來你是對這個for(t = b[i], j = i-1; j >= 0 && t < b[j]; j--)不太明白吧。
這個t是b[j+l]和b[j]進行交換的中間量,就是先將b[j]賦值給t,然後將b[j+1]賦值給b[j],在將t賦值給b[j+1]就ok了。
並且這個t = b[i]可以放到迴圈裡面來看的就清楚多了。
&& t < b[j] 也可以放到迴圈裡面寫的,加一個if 就行了,這個**寫的可讀性真的很差的,不建議這麼寫,不要裝什麼大師,將**寫的這麼緊湊,實際上不好,等你回頭來找bug的時候一頭霧水的。
改版如下:
for(i = 1;i< k; i++) }}
給你弄了一個排序的:
public static void main(string args) throws exception ;
int af = sort_array(a);
for (int i = 0; i < af.length; i++)
}public static int sort_array(int a)}}
return a;}
2樓:
這是對陣列的前k項排序 、
是冒泡嗎?(沒啥印象了)
3樓:匿名使用者
5671112 不就是對6, 12, 7, 11, 5的排序嗎
這行:有問題,
所以,是這個程式有問題,本來應該是冒泡的排序法的
分析下面java程式寫出該程式執行的結果
確實主方法需要有static修飾的,沒有static的main方法並不是真的主方法沒法執行。如果是印刷錯誤,本意是public static void main的話,結果就是 what a pleasure i amtom how do you do?沒有主方法,你告訴我怎麼執行 what a pl...
c語言讀下列程式,寫出程式的輸出結果
1,1因函式 void swap int a,int b 的第乙個引數a 不是指標,所以 它不會把 函式體內 對 a 的改變 帶回 函式呼叫語句 所在地。而第二個引數b 是指標,所以它能把 交換 結果 帶回來。int a 1,b 2 a,b初值int p b p 指向 bif a printf d,...
C語言程式,為什麼輸出的結果為3,2,0,而不是
當x為真時,因為是 號,後面的就不進行判斷了,就不進行計算了。a x y z 就是a x或 y和z 計算從左到右,或左邊為真時,結束運算,即x 2 1,y z不計算,直接輸出。結果為3,2,0 因為是 運算,計算了 x,已經為真,後面的內容不計算了,此時x 3,y z不變 請教這段c語言程式輸出結果...