1. 程式人生 > 實用技巧 >java面試題之排序

java面試題之排序

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;
                        }
                  }
                 }
            }

2. 選擇排序

3.插入排序