排序算法

1健提、冒泡排序:
原理:從數(shù)組的第一個(gè)位置開始兩兩比較array[index]和array[index+1]靠柑,如果array[index]大于array[index+1]則交換array[index]和array[index+1]的位置轰传,止到數(shù)組結(jié)束冰沙;
從數(shù)組的第一個(gè)位置開始架诞,重復(fù)上面的動(dòng)作闪金,止到數(shù)組長(zhǎng)度減一個(gè)位置結(jié)束叼屠;
從數(shù)組的第一個(gè)位置開始瞳腌,重復(fù)上面的動(dòng)作,止到數(shù)組長(zhǎng)度減二個(gè)位置結(jié)束镜雨;
代碼:

for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-i-1;j++){if(array[j]>array[j+1]){swap(array,j,j+1);}}}}

2嫂侍、選擇排序:
原理:選擇一個(gè)值array[0]作為標(biāo)桿,然后循環(huán)找到除這個(gè)值外最小的值(查找小于標(biāo)桿的最小值)荚坞,交換這兩個(gè)值挑宠,這時(shí)最小值就被放到了array[0]上,然后再將array[1]作為標(biāo)桿颓影,從剩下未排序的值中找到最小值各淀,并交換這兩個(gè)值。

代碼:

for(int i=0;i<array.length;i++){int index = i;for(int j=i+1;j<array.length;j++){if(array[j] < array[index]){index = j;}}

3诡挂、插入排序:
原理:插入排序的思想是數(shù)組是部門有序的碎浇,然后將無序的部分循環(huán)插入到已有序的序列中
代碼:

public static void insertSort(int [] array){for(int out=1;out<array.length;out++){int temp = array[out];//被標(biāo)記的值或者說是當(dāng)前需要插入的值int in = out;//如果輪循值大于被標(biāo)記值則往后移while( in > 0 && temp < array[in - 1]){array[in] = array[in - 1]; in -- ;}//將被標(biāo)記值插入最終移出的空位置array[in] = temp;}}

4临谱、快速排序:
原理:
1)設(shè)置兩個(gè)變量i、j奴璃,排序開始的時(shí)候:i=0悉默,j=N-1;
2)以第一個(gè)數(shù)組元素作為關(guān)鍵數(shù)據(jù)苟穆,賦值給key抄课,即key=A[0];
3)從j開始向前搜索雳旅,即由后開始向前搜索(j--)跟磨,找到第一個(gè)小于key的值A(chǔ)[j],將A[j]和A[i]互換岭辣;
4)從i開始向后搜索吱晒,即由前開始向后搜索(i++),找到第一個(gè)大于key的A[i]沦童,將A[i]和A[j]互換仑濒;
5)重復(fù)第3、4步偷遗,直到i=j墩瞳; (3,4步中,沒找到符合條件的值氏豌,即3中A[j]不小于key,4中A[i]不大于key的時(shí)候改變j喉酌、i的值,使得j=j-1泵喘,i=i+1泪电,直至找到為止。找到符合條件的值纪铺,進(jìn)行交換的時(shí)候i相速, j指針位置不變。另外鲜锚,i==j這一過程一定正好是i+或j-完成的時(shí)候突诬,此時(shí)令循環(huán)結(jié)束)。
代碼:

void Qsort(int a[], int low, int high)
{
    if(low >= high)
    {
        return;
    }
    int first = low;
    int last = high;
    int key = a[first];/*用字表的第一個(gè)記錄作為樞軸*/
 
    while(first < last)
    {
        while(first < last && a[last] >= key)
        {
            --last;
        }
 
        a[first] = a[last];/*將比第一個(gè)小的移到低端*/
 
        while(first < last && a[first] <= key)
        {
            ++first;
        }
         
        a[last] = a[first];    
/*將比第一個(gè)大的移到高端*/
    }
    a[first] = key;/*樞軸記錄到位*/
    Qsort(a, low, first-1);
    Qsort(a, first+1, high);
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芜繁,一起剝皮案震驚了整個(gè)濱河市旺隙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骏令,老刑警劉巖蔬捷,帶你破解...
    沈念sama閱讀 221,888評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異伏社,居然都是意外死亡抠刺,警方通過查閱死者的電腦和手機(jī)塔淤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來速妖,“玉大人高蜂,你說我怎么就攤上這事『比荩” “怎么了备恤?”我有些...
    開封第一講書人閱讀 168,386評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)锦秒。 經(jīng)常有香客問我露泊,道長(zhǎng),這世上最難降的妖魔是什么旅择? 我笑而不...
    開封第一講書人閱讀 59,726評(píng)論 1 297
  • 正文 為了忘掉前任惭笑,我火速辦了婚禮,結(jié)果婚禮上生真,老公的妹妹穿的比我還像新娘沉噩。我一直安慰自己,他們只是感情好柱蟀,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評(píng)論 6 397
  • 文/花漫 我一把揭開白布川蒙。 她就那樣靜靜地躺著,像睡著了一般长已。 火紅的嫁衣襯著肌膚如雪畜眨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評(píng)論 1 310
  • 那天术瓮,我揣著相機(jī)與錄音康聂,去河邊找鬼。 笑死胞四,一個(gè)胖子當(dāng)著我的面吹牛早抠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撬讽,決...
    沈念sama閱讀 40,902評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼悬垃!你這毒婦竟也來了游昼?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤尝蠕,失蹤者是張志新(化名)和其女友劉穎烘豌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體看彼,經(jīng)...
    沈念sama閱讀 46,349評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡廊佩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評(píng)論 3 340
  • 正文 我和宋清朗相戀三年囚聚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片标锄。...
    茶點(diǎn)故事閱讀 40,567評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顽铸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出料皇,到底是詐尸還是另有隱情谓松,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評(píng)論 5 350
  • 正文 年R本政府宣布践剂,位于F島的核電站鬼譬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏逊脯。R本人自食惡果不足惜优质,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望军洼。 院中可真熱鬧巩螃,春花似錦、人聲如沸歉眷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汗捡。三九已至淑际,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扇住,已是汗流浹背春缕。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艘蹋,地道東北人锄贼。 一個(gè)月前我還...
    沈念sama閱讀 48,995評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像女阀,于是被迫代替她去往敵國(guó)和親宅荤。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評(píng)論 2 359

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

  • 總結(jié)一下常見的排序算法浸策。 排序分內(nèi)排序和外排序冯键。內(nèi)排序:指在排序期間數(shù)據(jù)對(duì)象全部存放在內(nèi)存的排序。外排序:指在排序...
    jiangliang閱讀 1,350評(píng)論 0 1
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗(yàn)庸汗。 張土汪:刷leetcod...
    土汪閱讀 12,748評(píng)論 0 33
  • 概述 排序有內(nèi)部排序和外部排序惫确,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,191評(píng)論 0 52
  • 以前有一段時(shí)間改化, 老是替學(xué)中文的歪果仁朋友們擔(dān)憂掩蛤, 中文里好多量詞啊, 歪果仁能學(xué)得過來嗎陈肛?中文里的量詞太多了揍鸟, ...
    玄鳥羽飛閱讀 1,763評(píng)論 1 1
  • wC#編程初級(jí)篇(2015版本) C#編程中級(jí)篇(2015版本) C#編程高級(jí)篇(2015版本) 可以關(guān)注鏈接里面...
    Gabo閱讀 721評(píng)論 3 51