java面試題之排序
阿新 • • 發佈:2020-09-12
1. 氣泡排序
packagecom.bjsxt; public class TestBubbleSort { public static void sort(int[] a) { inttemp = 0; // 外層迴圈,它決定一共走幾趟 for(inti = 0; i <a.length-1; ++i) { //內層迴圈,它決定每趟走一次 for(intj = 0; j <a.length-i-1 ; ++j) { //如果後一個大於前一個 if(a[j + 1] < a[j]) { //換位 temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } public static void sort2 ( int[] a) { inttemp= 0; for ( inti= 0; i<a.length-1; ++i) { //通過符號位可以減少無謂的比較,如果已經有序了,就退出迴圈 intflag= 0; for ( intj= 0; j<a.length-1-i; ++j) { if(a[j+ 1] < a[j]) { temp= a[j]; a[j] = a[j+ 1]; a[j+ 1] = temp; flag= 1; } } if(flag== 0){ break; } } } }