數(shù)據(jù)結構常用排序算法總結獲獎科研報告_第1頁
數(shù)據(jù)結構常用排序算法總結獲獎科研報告_第2頁
數(shù)據(jù)結構常用排序算法總結獲獎科研報告_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

數(shù)據(jù)結構常用排序算法總結獲獎科研報告摘要:數(shù)據(jù)結構排序內(nèi)容是計算機專業(yè)學生學習的重難點內(nèi)容,常用的排序有冒泡排序、選擇排序和插入排序,不少大學生在學習過程中存在理解不清晰、學習不精準等問題,本文將分別對冒泡排序、選擇排序和插入排序等三種排序的概念、定義、實現(xiàn)原理等內(nèi)容,進行簡要的闡述,還希望可以為大學生更加有效的學習該部分內(nèi)容提供思路指引和經(jīng)驗借鑒。

關鍵詞:數(shù)據(jù)結構;排序算法;總結

排序算法是數(shù)據(jù)結構學科學習的核心內(nèi)容,但該部分內(nèi)容學習難度系數(shù)相對較大,不少大學生在學習起來存在一定的難度,使得其最終的學習效果受到了一定的影響,還需要積極的提升對該模塊內(nèi)容的重視程度,并積極的摸索數(shù)據(jù)結構常用排序算法,以進一步的提升大學生對該部分內(nèi)容的學習效能。本文將就數(shù)據(jù)結構常用排序算法進行總結,以讓學生更好的理解數(shù)據(jù)結構的常用排序算法,提升學生的學習質(zhì)量。

一、冒泡排序

冒泡排序是一種穩(wěn)定排序算法,是數(shù)據(jù)結構排序的最常用算法之一,有效的學習這種排序方法對于學生更好的進行排序和算法設計具有積極的促進作用,應該引起我們的重視,以下將對該排序算法進行具體闡述。其一,實現(xiàn)原理。所謂冒泡排序就是指將小的元素往前調(diào)整或者將大的元素往后調(diào)整的一種具體的數(shù)據(jù)結構交換排序方法。例如,我們以從小到大為例進行展示,在每一輪的排序過程中都要將相鄰的兩個數(shù)據(jù)(關鍵碼)進行對比,如果遇到前面的數(shù)據(jù)比后面數(shù)據(jù)大的情況,那么就進行第二輪交換,相反,如果出現(xiàn)遇到前面的數(shù)據(jù)比后面數(shù)據(jù)小的情況,則不進行操作,如果遇到最小的數(shù)據(jù),則會該數(shù)據(jù)會像一個“氣泡”一樣,被推到該數(shù)組的最頂端,冒泡排序因此得名,而根據(jù)上面的定義我們可以知道在具體每一輪的對比過程中都能夠固定當前對比數(shù)據(jù)中的一個最小值,且將其放置在最前面,如果對比的數(shù)據(jù)相同,則進行下一輪,如果沒有所要對比的數(shù)值,則要通過前面的兩兩結合將其相鄰起來,但不進行交換,因而又稱冒泡排序是一種穩(wěn)定性排序。其二,核心代碼如下:

template

voidbubsort(EA[],intn){

for(inti=0;ii;j--){

if(A[j]swap(A,j,j-1);7}8}9}

二、選擇排序

選擇排序包括簡單選擇排序和堆排序,也是數(shù)據(jù)結構常見的一種排序方法,相對于冒泡排序,對于排序同樣的內(nèi)容,雖然會執(zhí)行同樣的對比次數(shù),但是具體的交換次數(shù)卻顯然有所減少,因而該排序方法在執(zhí)行速度上比冒泡排序方法要更快一些。

其一,實現(xiàn)原理。我們以簡單選擇排序為例對其實現(xiàn)原理進行闡述。在將要排序的一組數(shù)據(jù)中,選擇其中最小(或者是最大)的一個數(shù)與在第一位置的數(shù)據(jù)進行交換,緊接著在剩下的數(shù)據(jù)當中再找出最小(或者是最大)的數(shù)據(jù)與第二個位置的數(shù)據(jù)進行交換,這樣依次進行查找、對比和交換,直到倒數(shù)第二個數(shù)和倒數(shù)第一個數(shù)據(jù)進行比較為止。其二,案例展示。

初始數(shù)據(jù):3,1,5,7,2,4,9,6

第一次對比:1,3,5,7,2,4,9,6

第二次對比:1,2,5,7,3,4,9,6

第三次對比:1,2,3,7,5,4,9,6

第四次對比:1,2,3,4,5,7,9,6

第五次對比:1,2,3,4,5,7,9,6

第六次對比:1,2,3,4,5,6,9,7

第七次對比:1,2,3,4,5,6,7,9

第八次對比:1,2,3,4,5,6,7,9

大家可以看到,經(jīng)過七次的對比,最終的排序結果為:1,2,3,4,5,6,7,9,從而借助簡單排序法實現(xiàn)了將數(shù)據(jù)由小到大進行排列的目的.

三、插入排序

插入排序又包括直接插入排序(穩(wěn)定排序)和希爾排序(不穩(wěn)定排序),也是一種較為重要的排序方法,在算法設計中的應用也比較廣泛,大學們應當引起重視。以下將以直接插入排序為例進行闡述。

其一,實現(xiàn)原理。所謂直接插入排序,是指將一個數(shù)據(jù)(記錄)直接插入到一個已經(jīng)排列好的有序序列中,記錄數(shù)增加1的有序表的一種排列方式,具體實現(xiàn)原理是首先將有序數(shù)組的第一個數(shù)據(jù)看作是一個有序的子列表,之后從第二個數(shù)據(jù)進行插入,這樣一直到整個序列完全有序為止。其二,案例展示。

voidinsertSort(intarray[],intn){

inti,j,temp;

for(i=1;itemp;j--){

array[j]=array[j-1];}

array[j]=temp;}

當然,除了以上的三種常見的排序算法,還包括歸并排序、桶排序、多路歸并等重要的排列方式,在學習數(shù)據(jù)結構的過程中要給予充分的重視。

總而言之,冒泡排序、選擇排序、插入排序作為數(shù)據(jù)結構學習內(nèi)容的重要組成部分,對于學生深入學習和把握數(shù)據(jù)結構的算法知識具有十分重要的作用和意義,大

溫馨提示

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

評論

0/150

提交評論