国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)據(jù)結(jié)構(gòu)常用排序算法總結(jié)

2020-03-30 03:28代昌宏
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)總結(jié)

代昌宏

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

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);排序算法;總結(jié)

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

一、冒泡排序

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

template

void bubsort(E A[],int n){

for(int i=0;i

for(int j=n-1;j>i;j--){

if(A[j]

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

二、選擇排序

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

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

初始數(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)過七次的對比,最終的排序結(jié)果為:1,2,3,4,5,6,7,9,從而借助簡單排序法實現(xiàn)了將數(shù)據(jù)由小到大進(jìn)行排列的目的.

三、插入排序

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

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

void insertSort(int array[],int n){

int i,j,temp;

for(i=1;i

if(array[i]

temp=array[i];

for(j=i;array[j-1]>temp;j--){

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

array[j]=temp;}

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

總而言之,冒泡排序、選擇排序、插入排序作為數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)內(nèi)容的重要組成部分,對于學(xué)生深入學(xué)習(xí)和把握數(shù)據(jù)結(jié)構(gòu)的算法知識具有十分重要的作用和意義,大學(xué)生要進(jìn)一步提高認(rèn)識,積極的探索高質(zhì)量和高效率學(xué)習(xí)常用排序算法的方法和策略,以不斷的強(qiáng)化對該部分排序內(nèi)容的學(xué)習(xí)和掌握,真正的掌握數(shù)據(jù)結(jié)構(gòu)的核心內(nèi)容,為后續(xù)更好的學(xué)習(xí)計算機(jī)內(nèi)容和信息素養(yǎng)的培養(yǎng)奠定堅實的基礎(chǔ)。

參考文獻(xiàn)

[1] 任遠(yuǎn),吉順如,林志杰.“排序”的教學(xué)方法探究[J].教育教學(xué)論壇,2017(29):194-195.

[2] 張震.排序算法性能分析及基數(shù)排序算法的應(yīng)用[J].時代農(nóng)機(jī),2017,44(06):36+39.

猜你喜歡
數(shù)據(jù)結(jié)構(gòu)總結(jié)
數(shù)據(jù)結(jié)構(gòu)線上線下混合教學(xué)模式探討
重典型應(yīng)用,明結(jié)構(gòu)關(guān)系
數(shù)學(xué)教學(xué)中的點滴感悟
孕足月低位水囊引產(chǎn)聯(lián)合靜滴縮宮素的臨床觀察及總結(jié)
小學(xué)數(shù)學(xué)教師專業(yè)發(fā)展之我見
關(guān)于中考作文的一點建議(一)
數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計教學(xué)模式的探討
高效學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)