題目:java
給出一組整數數組,要求按照絕對值從小到大進行排序後輸出。數組
能夠用經典的冒泡排序法來計算此問題,計算過程:code
一、比較相鄰兩個元素絕對值,若是第一個比第二個大,則交換他們兩個;排序
二、對每一對相鄰元素作相同工做,直到結尾最後一對完成爲止,這樣在最後的元素會是絕對值最大的;class
三、針對全部元素重複上訴步驟,除了最後一個(已經排好的);test
四、重複步驟1~3,直到排序完成。循環
@Test public void testSort() { int[] arr = {17, -27, 3, 21, -5, 2, 18, -40}; for(int i=0; i<arr.length-1; i++) { //外層循環每執行一遍,末尾位置就肯定一個元素。 好比:第一次循環完,肯定 index=arr.length-1的元素; //第二次循環,肯定 index=arr.length-2的元素 for(int j=0; j<arr.length-1-i; j++) { if(Math.abs(arr[j]) > Math.abs(arr[j+1])) { int tmp = arr[j+1];//交換相鄰兩個元素 arr[j+1] = arr[j]; arr[j] = tmp; } } } for(int one:arr) { System.out.print(one); System.out.print(","); } }