程序員必知8大排序3大查找(一)解析_第1頁
程序員必知8大排序3大查找(一)解析_第2頁
程序員必知8大排序3大查找(一)解析_第3頁
程序員必知8大排序3大查找(一)解析_第4頁
程序員必知8大排序3大查找(一)解析_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、程序員必知8大排序3大查找(一每天都在叫囂自己會(huì)什么技術(shù),什么框架,可否意識(shí)到你每天都在被這些新名 詞、新技術(shù)所迷惑,.NET、XML等等技術(shù)固然誘人,可是如果自己的基礎(chǔ)不扎實(shí),就 像是在云里霧里行走一樣,只能看到眼前,不能看到更遠(yuǎn)的地方。這些新鮮的技術(shù)掩 蓋了許多底層的原理,要想真正的學(xué)習(xí)技術(shù)還是走下云端,扎扎實(shí)實(shí)的把基礎(chǔ)知識(shí)學(xué) 好,有了這些基礎(chǔ),要掌握那些新技術(shù)也就很容易了。要編寫出優(yōu)秀的代碼同樣要扎實(shí)的基礎(chǔ),如果排序和查找算法學(xué)的不好,怎么對(duì) 程序的性能進(jìn)行優(yōu)化?廢話不多說,本文要介紹的這些排序算法就是基礎(chǔ)中的基礎(chǔ),程 序員必知!內(nèi)部排序iTi 中 1選杼排序二1、直接插入排序 (1基本

2、思想:在要排序的一組數(shù)中,假設(shè)前面(n-1 n=2個(gè)數(shù)已經(jīng)是排好順序的,現(xiàn)在要把第n個(gè)數(shù)插到前面的有序數(shù)中,使得這n個(gè)數(shù)也是排好順序的。如此反復(fù)循環(huán),直到全部排好順序。(2實(shí)例初始狀態(tài)57 68 59 525168 59 5257 59 686857,不處理1 亠5257f 插 1o57 68 59 52結(jié)幕 52 57 59115759957 59 686857,不處理I 5257,插2 57 68 59 52結(jié)果;52 57 595759=h2i,hi=2i+1 或(hi=h2i,hiv=2i+1(i=1,2,.,n/2時(shí)稱之為堆。在這里只討論滿足前者條件的堆。由 堆的定義可以看出,堆頂元

3、素(即第一個(gè)元素必為最大項(xiàng)(大頂堆。完全二叉樹可以很 直觀地表示堆的結(jié)構(gòu)。堆頂為根,其它為左子樹、右子樹。初始時(shí)把要排序的數(shù)的 序列看作是一棵順序存儲(chǔ)的二叉樹,調(diào)整它們的存儲(chǔ)序,使之成為一個(gè)堆,這時(shí)堆的根 節(jié)點(diǎn)的數(shù)最大。然后將根節(jié)點(diǎn)與堆的最后一個(gè)節(jié)點(diǎn)交換。然后對(duì)前面(n-1個(gè)數(shù)重新調(diào)整使之成為堆。依此類推,直到只有兩個(gè)節(jié)點(diǎn)的堆,并對(duì)它們作交換,最后得到有n 個(gè)節(jié)點(diǎn)的有序序列。從算法描述來看,堆排序需要兩個(gè)過程,一是建立堆,二是堆頂與 堆的最后一個(gè)元素交換位置。所以堆排序有兩個(gè)函數(shù)組成。一是建堆的滲透函數(shù),二是反復(fù)調(diào)用滲透函數(shù)實(shí)現(xiàn)排序的函數(shù)。(2實(shí)例:初始序列:46,79,56,38,40,84

4、建堆:交換,從堆中踢出最大數(shù)剩余結(jié)點(diǎn)再建堆,再交換踢出最大數(shù)依次類推:最后堆中剩余的最后兩個(gè)結(jié)點(diǎn)交換,踢出一個(gè),排序完成。5、冒泡排序(1基本思想:在要排序的一組數(shù)中,對(duì)當(dāng)前還未排好序的范圍內(nèi)的全部數(shù),自上而 下對(duì)相鄰的兩個(gè)數(shù)依次進(jìn)行比較和調(diào)整,讓較大的數(shù)往下沉,較小的往上冒。即:每當(dāng) 兩相鄰的數(shù)比較后發(fā)現(xiàn)它們的排序與排序要求相反時(shí),就將它們互換。(2實(shí)例:初抬狀畜57 68 59 52 57 68 59 52 52 57 68 59J - /57 68 52 595257 59 6857 52 68 5952 57J59 6852 57 68 59未完待續(xù),第二篇將介紹剩余3大排序,排序穩(wěn)定性,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論