2018-11-26

1、快速排序

public void sort(int[] a,int low,int high){
         int start = low;
         int end = high;
         int key = a[low];
         
       
         while(end>start){
             //從后往前比較
             while(end>start&&a[end]>=key)  //如果沒(méi)有比關(guān)鍵值小的,比較下一個(gè),直到有比關(guān)鍵值小的交換位置,然后又從前往后比較
                 end--;
             if(a[end]<=key){
                 int temp = a[end];
                 a[end] = a[start];
                 a[start] = temp;
             }
             //從前往后比較
             while(end>start&&a[start]<=key)//如果沒(méi)有比關(guān)鍵值大的,比較下一個(gè),直到有比關(guān)鍵值大的交換位置
                start++;
             if(a[start]>=key){
                 int temp = a[start];
                 a[start] = a[end];
                 a[end] = temp;
             }
         //此時(shí)第一次循環(huán)比較結(jié)束,關(guān)鍵值的位置已經(jīng)確定了。左邊的值都比關(guān)鍵值小,右邊的值都比關(guān)鍵值大,但是兩邊的順序還有可能是不一樣的,進(jìn)行下面的遞歸調(diào)用
         }
         //遞歸
         if(start>low) sort(a,low,start-1);//左邊序列。第一個(gè)索引位置到關(guān)鍵值索引-1
         if(end<high) sort(a,end+1,high);//右邊序列。從關(guān)鍵值索引+1到最后一個(gè)
     }
}


2、冒泡

public void bubbleSort(int []a){
           int len=a.length;
           for(int i=0;i<len;i++){
               for(int j=0;j<len-i-1;j++){//注意第二重循環(huán)的條件
                   if(a[j]>a[j+1]){
                       int temp=a[j];
                       a[j]=a[j+1];
                       a[j+1]=temp;
                   }
               }
           }
       }

3、二分法

 public static int search(int[] arr, int key) {
       int start = 0;
       int end = arr.length - 1;
       while (start <= end) {
           int middle = (start + end) / 2;
           if (key < arr[middle]) {
               end = middle - 1;
           } else if (key > arr[middle]) {
               start = middle + 1;
           } else {
               return middle;
           }
       }
       return -1;
   }

4、單例模式

// 線(xiàn)程安全的懶漢式單例
public class Singleton3 {
 
    //使用volatile關(guān)鍵字防止重排序,因?yàn)?new Instance()是一個(gè)非原子操作,可能創(chuàng)建一個(gè)不完整的實(shí)例
    private static volatile Singleton3 singleton3;
 
    private Singleton3() {
    }
 
    public static Singleton3 getSingleton3() {
        // Double-Check idiom
        if (singleton3 == null) {
            synchronized (Singleton3.class) {       // 1
                // 只需在第一次創(chuàng)建實(shí)例時(shí)才同步
                if (singleton3 == null) {       // 2
                    singleton3 = new Singleton3();      // 3
                }
            }
        }
        return singleton3;
    }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 孟母堂“三維一體”存在感打造手冊(cè) 建立家長(zhǎng)的存在感 建立孩子的存在感 建立員工的存在感 一、建立家長(zhǎng)的存在感 1、...
    每個(gè)人的孟母堂閱讀 343評(píng)論 0 1
  • 市政公用工程施工總承包資質(zhì)標(biāo)準(zhǔn) 2018-09-25 17:47:34 市政公用工程施工總承包資質(zhì)分為特級(jí)、一級(jí)、...
    薔薇季2017閱讀 120評(píng)論 0 0
  • 這一年馬上就要過(guò)去了,毫無(wú)疑問(wèn)這一年我是人生中目前過(guò)的最成功的一年,或許是因?yàn)槲易兞?,所以我的世界就變了吧? ...
    k承龍閱讀 709評(píng)論 0 51
  • (一) 春。 處處花開(kāi)木棉淳。 好時(shí)令, 雨后至潔純。 (二) 風(fēng)。 窗外松竹林茂豐。 鳥(niǎo)飛過(guò), 無(wú)處不相逢。
    SpringTang閱讀 207評(píng)論 0 1

友情鏈接更多精彩內(nèi)容