排序方式

冒泡排序:

int temp;//定義一個臨時變量
        for(int i=0;i<arr.length-1;i++){//冒泡趟數(shù)
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j+1]<arr[j]){
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }

選擇排序:

  int[] arr={1,3,2,45,65,33,12};
        System.out.println("交換之前:");
        for(int num:arr){
            System.out.print(num+" ");
        }        
        //選擇排序的優(yōu)化
        for(int i = 0; i < arr.length - 1; i++) {// 做第i趟排序
            int k = i;
            for(int j = k + 1; j < arr.length; j++){// 選最小的記錄
                if(arr[j] < arr[k]){ 
                    k = j; //記下目前找到的最小值所在的位置
                }
            }
            //在內(nèi)層循環(huán)結(jié)束,也就是找到本輪循環(huán)的最小的數(shù)以后,再進(jìn)行交換
            if(i != k){  //交換a[i]和a[k]
                int temp = arr[i];
                arr[i] = arr[k];
                arr[k] = temp;
            }    
        }
        System.out.println();
        System.out.println("交換后:");
        for(int num:arr){
            System.out.print(num+" ");
        }
    }

二分查找:

1.遞歸的方式:

/**
  * 使用遞歸的二分查找
  *title:recursionBinarySearch
  *@param arr 有序數(shù)組
  *@param key 待查找關(guān)鍵字
  *@return 找到的位置
  */
 public static int recursionBinarySearch(int[] arr,int key,int low,int high){
  
  if(key < arr[low] || key > arr[high] || low > high){
   return -1;    
  }
  int middle = (low + high) / 2;    //初始中間位置
  if(arr[middle] > key){
   //比關(guān)鍵字大則關(guān)鍵字在左區(qū)域
   return recursionBinarySearch(arr, key, low, middle - 1);
  }else if(arr[middle] < key){
   //比關(guān)鍵字小則關(guān)鍵字在右區(qū)域
   return recursionBinarySearch(arr, key, middle + 1, high);
  }else {
   return middle;
  } 
 }

2.while循環(huán)實現(xiàn):

/**
  * 不使用遞歸的二分查找
  *title:commonBinarySearch
  *@param arr
  *@param key
  *@return 關(guān)鍵字位置
  */
 public static int commonBinarySearch(int[] arr,int key){
  int low = 0;
  int high = arr.length - 1;
  int middle = 0;   //定義middle
  
  if(key < arr[low] || key > arr[high] || low > high){
   return -1;    
  }
  while(low <= high){
   middle = (low + high) / 2;
   if(arr[middle] > key){
    //比關(guān)鍵字大則關(guān)鍵字在左區(qū)域
    high = middle - 1;
   }else if(arr[middle] < key){
    //比關(guān)鍵字小則關(guān)鍵字在右區(qū)域
    low = middle + 1;
   }else{
    return middle;
   }
  }
  return -1;    //最后仍然沒有找到碑幅,則返回-1
 }

3.測試代碼:

public static void main(String[] args) {
 
  int[] arr = {1,3,5,7,9,11};
  int key = 4;
  //int position = recursionBinarySearch(arr,key,0,arr.length - 1);
  
  int position = commonBinarySearch(arr, key);
 
               if(position == -1){
   System.out.println("查找的是"+key+",序列中沒有該數(shù)碉就!");
  }else{
   System.out.println("查找的是"+key+",找到位置為:"+position);
  }
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末油坝,一起剝皮案震驚了整個濱河市音瓷,隨后出現(xiàn)的幾起案子锦庸,更是在濱河造成了極大的恐慌敬锐,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剩盒,死亡現(xiàn)場離奇詭異谷婆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)辽聊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門纪挎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跟匆,你說我怎么就攤上這事异袄。” “怎么了玛臂?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵烤蜕,是天一觀的道長。 經(jīng)常有香客問我迹冤,道長讽营,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任泡徙,我火速辦了婚禮橱鹏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘堪藐。我一直安慰自己莉兰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布礁竞。 她就那樣靜靜地躺著糖荒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苏章。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機(jī)與錄音枫绅,去河邊找鬼泉孩。 笑死,一個胖子當(dāng)著我的面吹牛并淋,可吹牛的內(nèi)容都是我干的寓搬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼县耽,長吁一口氣:“原來是場噩夢啊……” “哼句喷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起兔毙,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤唾琼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后澎剥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锡溯,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年哑姚,在試婚紗的時候發(fā)現(xiàn)自己被綠了祭饭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡叙量,死狀恐怖倡蝙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情绞佩,我是刑警寧澤寺鸥,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站征炼,受9級特大地震影響析既,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谆奥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一眼坏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧酸些,春花似錦宰译、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至市栗,卻和暖如春缀拭,著一層夾襖步出監(jiān)牢的瞬間咳短,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工蛛淋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咙好,地道東北人。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓褐荷,卻偏偏與公主長得像勾效,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子叛甫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一其监、冒泡排序 這種排序方式是最容易理解的萌腿,主體思想就是: 指針重復(fù)地走訪過要排序的數(shù)列,一次比較兩個元素棠赛,如果他們...
    清陽_閱讀 570評論 0 0
  • 1.選擇排序?qū)⒌?個位置元素與每一個元素進(jìn)行比較哮奇,如果比第0個元素大,就交換位置 2.冒泡排序 3.二分查找法:前...
    字節(jié)碼閱讀 1,300評論 0 1
  • 總結(jié)一下常見的排序算法睛约。 排序分內(nèi)排序和外排序鼎俘。內(nèi)排序:指在排序期間數(shù)據(jù)對象全部存放在內(nèi)存的排序。外排序:指在排序...
    jiangliang閱讀 1,346評論 0 1
  • 今天下午4點(diǎn)50到中影國際太陽新天地看電影《繡春刀》辩涝。毫無疑問贸伐,是一部難得的好電影。個人認(rèn)為聶遠(yuǎn)和金士杰演得最好怔揩,...
    HKirito閱讀 223評論 0 1
  • 通過老師的介紹捉邢,我接觸到許多有關(guān)電商的書籍,其中有《淘寶技術(shù)這十年》《場景革命》商膊、《長尾理論》伏伐、《爆品戰(zhàn)...
    966d143642dc閱讀 748評論 0 1