基本的排序算法總結(jié):

1、冒泡排序(兩兩比較相鄰的元素僧界,交換位置)

實(shí)現(xiàn):

private static void BubbleSort(int[] arr,int n){

?? ? for(int i = 0;i

?? ??? ?? ? for(int j = 1;j

?? ??? ??? ?? ? if(arr[j-1] > arr[j]){

?? ??? ??? ??? ?? ? //交換兩個(gè)元素

??? ??? ??? ??? ??? ?? ? int temp = arr[i];

?? ??? ??? ??? ??? ?? ? ?arr[j] = arr[j-1];

?? ??? ??? ??? ??? ??? ??arr[j-1] = temp; ? ??? ??? ??? ??? ?

?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?}?? ??? ??? ??? ?

?? ??? ??? ??? ??? ??? ??? ??? ??? ?}? ????

?? ??? ??? ??? ??? ??? ??? ??? ?} ? ?

?? ??? ??? ??? ??? ??? ??? ??}

特點(diǎn)總結(jié):

冒泡排序的算法時(shí)間平均復(fù)雜度為O(n2)朋蔫。

空間復(fù)雜度為 O(1)。

冒泡排序?yàn)榉€(wěn)定排序筋帖。


2酗电、選擇排序

1、從待排序序列中典徊,找到關(guān)鍵字最小的元素杭煎;起始假定第一個(gè)元素為最小

2、如果最小元素不是待排序序列的第一個(gè)元素卒落,將其和第一個(gè)元素互換羡铲;

3、從余下的 N - 1 個(gè)元素中儡毕,找出關(guān)鍵字最小的元素也切,重復(fù)1,2步妥曲,直到排序結(jié)束贾费。

實(shí)現(xiàn):

public static void sort(int[] arr) {?

?int n = arr.length;for(int i = 0; i < n; i++) {?

?int minIndex = i;?

?//for循環(huán) i 之后所有的數(shù)字 找到剩余數(shù)組中最小值得索引

for(int j = i + 1; j < n; j++) {

if(arr[j]< arr[minIndex]) {

?minIndex = j;?

?}

?}

?swap(arr, i, minIndex);?

?}?

?}

?/** * 角標(biāo)的形式 交換元素 */

?private static void swap(int[] arr, int i, int j) {

?int temp = arr[i];

?arr[i] = arr[j];?

?arr[j] = temp;?

?}

選擇排序總結(jié):

1、選擇排序的算法時(shí)間平均復(fù)雜度為O(n2)檐盟。

2褂萧、選擇排序空間復(fù)雜度為 O(1)。

3葵萎、選擇排序?yàn)椴环€(wěn)定排序导犹。


3、插入排序

插入排序的思想

1羡忘、從第一個(gè)元素開(kāi)始谎痢,該元素可以認(rèn)為已經(jīng)被排序

2、取出下一個(gè)元素卷雕,在已經(jīng)排序的元素序列中從后向前掃描

3节猿、如果該元素(已排序)大于新元素,將該元素移到下一位置

4漫雕、重復(fù)步驟 3滨嘱,直到找到已排序的元素小于或者等于新元素的位置

5、將新元素插入到該位置后

6浸间、重復(fù)步驟 2~5

實(shí)現(xiàn):

public static void sort(int[] arr) {?

?int n = arr.length;for(int i = 0; i < n; i++) {

?//內(nèi)層循環(huán)比較 i 與前邊所有元素值太雨,如果 j 索引所指的值小于 j- 1 則交換兩者的位置

for(int j = i; j > 0 && arr[j-1] > arr[j]; j--){

?swap(arr,j-1,j);

?}

?}?

?}

或者這樣實(shí)現(xiàn):

public static void sort(int[] arr) {

?int n = arr.length;for(int i = 0; i < n; i++) {

?//拎出來(lái)當(dāng)前未排序的這樣牌?

?int e = arr[i];

?//尋找其該放的位置

for(int j = i; j > 0 && arr[j-1] > arr[j]; j--){

?arr[j]= arr[j-1];

?}

?//循環(huán)結(jié)束后? arr[j] >= arr[j-1] 那么 j 角標(biāo)就是e 應(yīng)該在的位置。

?arr[j] = e;?

?}?

?}

插入排序總結(jié):

1魁蒜、插入排序的算法時(shí)間平均復(fù)雜度為O(n2)囊扳。

2吩翻、插入排序空間復(fù)雜度為 O(1)。

3锥咸、插入排序?yàn)榉€(wěn)定排序狭瞎。

4、插入排序?qū)τ诮跤行虻臄?shù)組來(lái)說(shuō)效率更高她君,插入排序可用來(lái)優(yōu)化高級(jí)排序算法

4脚作、歸并排序

實(shí)現(xiàn)思想:

1葫哗、申請(qǐng)空間缔刹,使其大小為兩個(gè)已經(jīng)排序序列之和,該空間用來(lái)存放合并后的序列

2劣针、設(shè)定兩個(gè)指針校镐,最初位置分別為兩個(gè)已經(jīng)排序序列的起始位置

3、比較兩個(gè)指針?biāo)赶虻脑剞嗟洌x擇相對(duì)小的元素放入到合并空間鸟廓,并移動(dòng)指針到下一位置

4、重復(fù)步驟3直到某一指針到達(dá)序列尾

5襟己、將另一序列剩下的所有元素直接復(fù)制到合并序列尾

轉(zhuǎn)載自:https://juejin.im/post/5a96d6b15188255efc5f8bbd?utm_source=gold_browser_extension

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末引谜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子擎浴,更是在濱河造成了極大的恐慌员咽,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贮预,死亡現(xiàn)場(chǎng)離奇詭異贝室,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)仿吞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門滑频,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人唤冈,你說(shuō)我怎么就攤上這事凡恍。” “怎么了乳蛾?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵夯到,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我售葡,道長(zhǎng)看杭,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任挟伙,我火速辦了婚禮楼雹,結(jié)果婚禮上模孩,老公的妹妹穿的比我還像新娘。我一直安慰自己贮缅,他們只是感情好榨咐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著谴供,像睡著了一般块茁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上桂肌,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天数焊,我揣著相機(jī)與錄音,去河邊找鬼崎场。 笑死佩耳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谭跨。 我是一名探鬼主播干厚,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼螃宙!你這毒婦竟也來(lái)了蛮瞄?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谆扎,失蹤者是張志新(化名)和其女友劉穎挂捅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體燕酷,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡籍凝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苗缩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饵蒂。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酱讶,靈堂內(nèi)的尸體忽然破棺而出退盯,到底是詐尸還是另有隱情,我是刑警寧澤泻肯,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布渊迁,位于F島的核電站,受9級(jí)特大地震影響灶挟,放射性物質(zhì)發(fā)生泄漏琉朽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一稚铣、第九天 我趴在偏房一處隱蔽的房頂上張望箱叁。 院中可真熱鬧墅垮,春花似錦、人聲如沸耕漱。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)螟够。三九已至灾梦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妓笙,已是汗流浹背若河。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留给郊,地道東北人牡肉。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像淆九,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子毛俏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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