排序算法

冒泡

void BubbleSortArray() 
 {
     int i,j,temp;
     for(i=1;i<n;i++) 
     { 
         for(j=0;j<n-i;j++) 
         { 
             if(a[j]>a[j+1]) //比較交換相鄰元素 
             { 
                 temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; 
             } 
         } 
     } 
 }

快速排序

快速排序(Quicksort)是對(duì)冒泡排序的一種改進(jìn)始苇,它的基本思想是:通過(guò)一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨(dú)立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小默辨,然后再按此方法對(duì)這兩部分?jǐn)?shù)據(jù)分別進(jìn)行快速排序,整個(gè)排序過(guò)程可以遞歸進(jìn)行一铅,以此達(dá)到整個(gè)數(shù)據(jù)變成有序序列。
時(shí)間復(fù)雜度為O(nlog2n),適用于排序大列表姜凄。

void swap(int a,int b){int t;t =a ;a =b ;b =t ;}

  int Partition(int [] arr,int low,int high) 
  { 
      int pivot=arr[low]; //采用子序列的第一個(gè)元素作為樞紐元素 
      while (low < high) 
      { 
  //從后往前在后半部分中尋找第一個(gè)小于樞紐元素的元素 
  while (low < high && arr[high] >= pivot) 
  { 
     --high; 
  } 
  swap(arr[low], arr[high]);//將這個(gè)比樞紐元素小的元素交換到前半部分

  //從前往后在前半部分中尋找第一個(gè)大于樞紐元素的元素 
  while (low <high &&arr [low ]<=pivot ) 
    { 
              ++low ; 
  } 
  swap (arr [low ],arr [high ]);//將這個(gè)樞紐元素大的元素交換到后半部分 
      } 
      return low ; //返回樞紐元素所在的位置 
  } 

  void QuickSort(int [] a,int low,int high) 
  { 
      if (low <high ) 
      { 
  int n=Partition (a ,low ,high ); 
  QuickSort (a ,low ,n ); 
  QuickSort (a ,n +1,high ); 
      } 
  } 

ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別以及線程安全的理解

就ArrayList與Vector主要從二方面來(lái)說(shuō).

  • 同步性:Vector是線程安全的,也就是說(shuō)是同步的趾访,而ArrayList是線程序不安全的态秧,不是同步的
  • 數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來(lái)一培,而ArrayList卻是原來(lái)的一半

就HashMap與HashTable主要從三方面來(lái)說(shuō)扼鞋。

  • 歷史原因:Hashtable是基于陳舊的Dictionary類的申鱼,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)
  • 同步性:Hashtable是線程安全的,也就是說(shuō)是同步的云头,而HashMap是線程序不安全的捐友,不是同步的
  • 值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value

什么是線程安全?

如果你的代碼所在的進(jìn)程中有多個(gè)線程在同時(shí)運(yùn)行盘寡,而這些線程可能會(huì)同時(shí)運(yùn)行這段代碼楚殿。如果每次運(yùn)行結(jié)果和單線程運(yùn)行的結(jié)果是一樣的,而且其他的變量的值也和預(yù)期的是一樣的竿痰,就是線程安全的脆粥。或者說(shuō):一個(gè)類或者程序所提供的接口對(duì)于線程來(lái)說(shuō)是原子操作或者多個(gè)線程之間的切換不會(huì)導(dǎo)致該接口的執(zhí)行結(jié)果存在二義性,也就是說(shuō)我們不用考慮同步的問(wèn)題影涉。
舉例
比如一個(gè) ArrayList 類变隔,在添加一個(gè)元素的時(shí)候,它可能會(huì)有兩步來(lái)完成:

  • 在 Items[Size] 的位置存放此元素蟹倾;
  • 增大 Size 的值匣缘。

在單線程運(yùn)行的情況下,如果 Size = 0鲜棠,添加一個(gè)元素后肌厨,此元素在位置 0,而且 Size=1豁陆;
而如果是在多線程情況下柑爸,比如有兩個(gè)線程,線程 A 先將元素存放在位置 0盒音。但是此時(shí) CPU 調(diào)度線程A暫停表鳍,線程 B 得到運(yùn)行的機(jī)會(huì)。線程B也向此 ArrayList 添加元素祥诽,因?yàn)榇藭r(shí) Size 仍然等于 0 (注意哦譬圣,我們假設(shè)的是添加一個(gè)元素是要兩個(gè)步驟哦,而線程A僅僅完成了步驟1)雄坪,所以線程B也將元素存放在位置0厘熟。然后線程A和線程B都繼續(xù)運(yùn)行,都增加 Size 的值。
那好绳姨,現(xiàn)在我們來(lái)看看 ArrayList 的情況颇玷,元素實(shí)際上只有一個(gè),存放在位置 0就缆,而 Size 卻等于 2。這就是“線程不安全”了谒亦。

java中的native關(guān)鍵字
native修飾的拾非java語(yǔ)言代碼接口竭宰,一般有實(shí)現(xiàn)體,不修飾abstract

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末份招,一起剝皮案震驚了整個(gè)濱河市切揭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锁摔,老刑警劉巖廓旬,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異谐腰,居然都是意外死亡孕豹,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門十气,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)励背,“玉大人,你說(shuō)我怎么就攤上這事砸西∫睹迹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵芹枷,是天一觀的道長(zhǎng)衅疙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鸳慈,這世上最難降的妖魔是什么饱溢? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮蝶涩,結(jié)果婚禮上理朋,老公的妹妹穿的比我還像新娘。我一直安慰自己绿聘,他們只是感情好嗽上,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著熄攘,像睡著了一般兽愤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天浅萧,我揣著相機(jī)與錄音逐沙,去河邊找鬼。 笑死洼畅,一個(gè)胖子當(dāng)著我的面吹牛吩案,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播帝簇,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼徘郭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了丧肴?” 一聲冷哼從身側(cè)響起残揉,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芋浮,沒(méi)想到半個(gè)月后抱环,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纸巷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年镇草,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘤旨。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陶夜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出裆站,到底是詐尸還是另有隱情条辟,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布宏胯,位于F島的核電站羽嫡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏肩袍。R本人自食惡果不足惜杭棵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望氛赐。 院中可真熱鬧魂爪,春花似錦、人聲如沸艰管。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)牲芋。三九已至撩笆,卻和暖如春捺球,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背夕冲。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工氮兵, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歹鱼。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓泣栈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親弥姻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秩霍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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

  • 在一個(gè)方法內(nèi)部定義的變量都存儲(chǔ)在棧中,當(dāng)這個(gè)函數(shù)運(yùn)行結(jié)束后蚁阳,其對(duì)應(yīng)的棧就會(huì)被回收,此時(shí)鸽照,在其方法體中定義的變量將不...
    Y了個(gè)J閱讀 4,413評(píng)論 1 14
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法螺捐,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法矮燎,繼承相關(guān)的語(yǔ)法定血,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,598評(píng)論 18 399
  • Java繼承關(guān)系初始化順序 父類的靜態(tài)變量-->父類的靜態(tài)代碼塊-->子類的靜態(tài)變量-->子類的靜態(tài)代碼快-->父...
    第六象限閱讀 2,147評(píng)論 0 9
  • 老斯特林山路 挪威老斯特林山路Old Strynefjell Mountain ...
    Anny的旅行閱讀 1,663評(píng)論 0 3
  • 劇情回顧:行路難08 監(jiān)督 第09章:云端 “云?”葉波不可思議地看著我。 我沒(méi)有回答峡谊,只是看著他點(diǎn)了點(diǎn)頭茫虽。 “不...
    蘭十三閱讀 338評(píng)論 0 2