2019獨角獸企業重金招聘Python工程師標準>>>
題目:
給出一組整數數組,要求按照絕對值從小到大進行排序后輸出。
?
可以用經典的冒泡排序法來計算此問題,計算過程:
1、比較相鄰兩個元素絕對值,如果第一個比第二個大,則交換他們兩個;
2、對每一對相鄰元素做相同工作,直到結尾最后一對完成為止,這樣在最后的元素會是絕對值最大的;
3、針對所有元素重復上訴步驟,除了最后一個(已經排好的);
4、重復步驟1~3,直到排序完成。
?
@Testpublic 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(",");}}
?